0

コードが与えられた場合、このようなことを可能にするある種のVimプラグインはありますか:

function something (arbitraryObject) {
  arbitraryObject.something = doesNotMatter;
}

次に、関数本体で単語arbitraryObjectを選択したとします。短いキーの組み合わせまたはコマンド モード コマンドを指定すると、次のようなマクロを簡単に作成できる方法が必要です。

function something (arbitraryObject) {
  arbitraryObject.something = doesNotMatter;
  console.log(arbitraryObject);
}

また...

function something (arbitraryObject) {
  arbitraryObject.something = doesNotMatter;
  window.arbitraryObject = arbitraryObject;
}

このマクロが実際にどのように見えるかを尋ねているわけではないことに注意してください。このようなものを特に簡単に作成できる組み込みツールまたはプラグインがあるかどうかに興味があります。

4

3 に答える 3

2

あなたが特定のマクロを求めていないことは知っていますが、例によってこれらのタイプのことを学ぶのが最も簡単です。最初のもの(console.log)は、次のマッピングによって実現できます。

:vmap <leader>il y<esc>oconsole.log(<c-r>");<esc>

同様に、2番目のものは次のようになります。

:vmap <leader>iw y<esc>owindow.<c-r>" = <c-r>";<esc>

類似点を見つけることができますか?<leader>ilコマンドがリーダーキー(通常は,)にバインドされ、その後に。がi続くことを意味しlます。vimで使用すると、次のコマンドの意味を確認できます:help [key]が、マッピングは基本的にy、選択したテキストをank(コピー)し、新しい行(Esco)を入力してから、テキストの後にCtrl+r"、を追加して、ヤンクされたテキストを挿入します。

于 2012-07-23T22:38:09.450 に答える
1

1 つのオプションは、 snipMate.vimのようなものを使用して、さまざまなタスクのスニペットを用意することです。たとえば、次のスニペットを作成できます。

snippet cons
  console.log(${1:variable});${2}
snippet wind
  window.${1:attribute} = $1${2}

yocons<Tab><C-r>"<Tab>次に、 、または同様のことができますyowind<Tab><C-r>"<Tab>yiw視覚的に選択する代わりに使用することもできます。このようなオプションが気に入っているのは、特定のタイプのファイルタイプ (javascript など) のみに簡単に適用できるようにし、既存のスニペットを拡張し続けることができるからです。

于 2012-07-23T22:57:16.490 に答える
0
nmap <Leader>l o<esc>pv^"xygv[ygvdiconsole.log(<esc>a"<esc>pa",<esc>"xpa);<esc>

これは、vim-unimpared の助けを借りて文字列を引用するため、より良い代替手段です。テキストをヤンクするだけです。このキービンギングをログに記録して使用する必要があります。変換します

this.$el.find("input,select,textarea")

console.log("this.$el.find(\"input,select,textarea\")",this.$el.find("input,select,textarea")); 
于 2014-01-02T09:00:42.753 に答える