質問: AtomでVimを使って開発をしています。 AtomのVimでテキストオブジェクトを使用したく、 「vim-surround」パッケージをインストールしました。 「ciw」等のテキストオブジェクトは使用できるようになったのですが、 ""で単語を囲む「ysiw"」が効きません。 何か設定方法等あればお教えいただけると幸いです、よろしくお願いしますm(_ _*)m 【追記】 コメントでご指摘頂きました内容を、コメントにも書かせていただきましたがこちらにも追記します。 ・Atomエディタに入れたプラグイン vim-surround()
回答: わかりきったところも含めて整理するとこうなります. * Atom も Vim もエディタの名前です. * 「Atom で Vim を使う」というのは.この場合 Atom にパッケージを導入して Vim のようないろんな機能やキーマップを実現するというもので,具体的には vim-mode-plus を使っておられるということでした.なお, Vim-mode-plus については作者によるチュートリアルもあるので[1] 参考になると思います. * テキストオブジェクト というのは Vim の持っている概念(あるいはそれを実現するコマンド)のことです.たとえば, `c` (change) というオペレータと,`iw` (inner word) というテキストオブジェクトを組み合わせることで, `ciw` と打つことでその単語を変更することができます.これは, Vim ではプラグイン無しで使えるコマンドです.他のエディタ上でVim を模したプラグイン(今回の vim-mode-plus とかevil とか)を使う場合でも,同様に追加のプラグインを必要とせずに使えることが期待されます. * vim-surround というVim のプラグインがあって,これは例えば `ys`+`iw`+`"` で単語をクオートで囲えるようにするものです(真ん中の `iw` は前述のテキストオブジェクト).これは Vim 用のプラグインで,vim-mode-plus 上で動くものではありません. * 同名の vim-surround というパッケージが Atom にあるようで,今回はこれをインストールしはったのだと思います.これは vim-mode を前提に visual mode で `s)` などのコマンドを提供するもので, `ysiw"` はサポートされていないようです. * さて,vim-mode-plus ではふつうのテキストオブジェクトは使えるようになっているようです.`ciw` は vim-mode-plus だけで使えるということです. * `ysiw"` のように「括弧やクオートで囲む」ということについては, vim-mode-plus では「実装はしてるけど,デフォルトのマッピングはない」という状況のようです.自分で設定するか,おすすめ通り vim-mode-plus-keymaps-for-surround を追加でインストールすることで解決できそうです. 1]: [Vim/vim-mode-plus for Atom: 秒速で初心者からエキスパートになる。 たった7ステップで。