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

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2015/10/08 12:38:34
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:rbtnn No.1

回答回数1ベストアンサー獲得回数1スマートフォンから投稿

ポイント123pt

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

id:tetlis

ありがとうございます。うまくいきました!

ちなみに、この「末尾に❗を付ける」というのがよく分らないのですが、もっと詳しく調べるには、なんと検索すれば良いでしょうか?

2015/10/08 12:34:35

その他の回答0件)

id:rbtnn No.1

回答回数1ベストアンサー獲得回数1スマートフォンから投稿ここでベストアンサー

ポイント123pt

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

id:tetlis

ありがとうございます。うまくいきました!

ちなみに、この「末尾に❗を付ける」というのがよく分らないのですが、もっと詳しく調べるには、なんと検索すれば良いでしょうか?

2015/10/08 12:34:35
id:tetlis

以下のコードで自己解決しました。

また、rbtnnさんからもっとスマートな方法を教えていただきました。

command! Tab call Tab()

function! Tab()

if &expandtab == '1'

set noexpandtab

else

set expandtab

endif

endfunction

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません