Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

Vimで言うところの「単語」ってどうやって決まるのさ?

$
0
0

Vimのコマンドには、単語単位での操作がいろいろある。
でもその「単語」はどうやって決まっているのか。分からないと迂闊にwを押せないよ。。。
ということで調べてみた。

iskeyword

早速結論だけど、iskeywordという設定値で単語が定義されている。
ここで設定された文字が続く限りは、単語とみなされるという仕組み。

ドキュメントによると、

  • Windowsでの規定値:"@,48-57,_,128-167,224-235"
  • それ以外のシステムでの規定値:"@,48-57,_,192-255"

となっているらしい。

@は、関数isalpha()TRUEが返るような文字(=a-z,A-Zと、これらにアクセントが付いたもの)を表す。
また、48-57などの数値での指定はASCIIコードでの範囲指定を表す。48-57は数字の0-9のこと。128以降は拡張ASCCIIというので定義されているらしいけど、日本人はほぼ使わないと思う。

つまり、デフォルトでは英数字と_の塊が単語としてみなされるということ。

設定値の確認

設定値を確認したいときは以下を入力すればOK。

:set iskeyword

もしくは、

:set isk

変更例

たとえばCSSを編集してるとき。margin-topとか、ハイフンも単語の一部とみなしてほしくなる。
なので、ハイフンをiskeywordに含めてやる。

:setlocal isk+=-

たとえばRubyでクラスの編集をしてるとき。@foo, @@barを単語として扱ってほしい。
そんなときは、

:setlocal isk+=@-@

@-@は文字の@を表す。@は英字を表す特殊文字なので。

。。。などなど、便利に使ってください。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>