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回まで
  • 13歳以上
  • 登録:2015/10/08 11:00:36
  • 終了:2015/10/08 12:38:34

ベストアンサー

id:rbtnn No.1

rbtnn回答回数1ベストアンサー獲得回数12015/10/08 12:18:08スマートフォンから投稿

ポイント123pt

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

id:tetlis

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

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

2015/10/08 12:34:35

その他の回答(0件)

id:rbtnn No.1

rbtnn回答回数1ベストアンサー獲得回数12015/10/08 12:18:08スマートフォンから投稿ここでベストアンサー

ポイント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

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません