人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VIMスクリプトについて。

コマンドモードで「echo &expandtab」とやると「0」や「1」などと表示されますが、これをVIMスクリプトのifの条件に使うにはどうしたらよいでしょうか?

具体的には下記のように書いて、「Tab」コマンドで、[TAB]キーの入力をタブにするか空白スペースにするかトグルしたいと思っています。

現在は「未定義な変数です: noexpandtab」と出てしまい、ifの条件に使えていません。

command! Tab call Tab()
function! Tab()
if exists(noexpandtab)
set expandtab
else
set noexpandtab
endif
endfunction

●質問者: tetlis
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● rbtnn
●123ポイント ベストアンサー

この場合、わざわざ関数を作る必要はなく、「set expandtab!」と末尾に❗を付けることでトグルすることがてきます。なので、「command! Tab set expandtab!」でようでしょう。


tetlisさんのコメント
ありがとうございます。うまくいきました! ちなみに、この「末尾に?を付ける」というのがよく分らないのですが、もっと詳しく調べるには、なんと検索すれば良いでしょうか?

質問者から

以下のコードで自己解決しました。
また、rbtnnさんからもっとスマートな方法を教えていただきました。

command! Tab call Tab()
function! Tab()
if &expandtab == '1'
set noexpandtab
else
set expandtab
endif
endfunction


関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ