機能させるには、略語を空白で区切る必要があります。たとえば、私が持っているiab fo FOOBAR場合、タイプしwhatfoても省略形はトリガーされません。これにはいくつかの明らかな賢明な理由があります。
ただし、iabをトリガーしてから戻ってスペースを削除しなくても、接尾辞として使用できる略語が必要です。これは可能ですか?例えば、iab fo <backspace>FOOBAR。
機能させるには、略語を空白で区切る必要があります。たとえば、私が持っているiab fo FOOBAR場合、タイプしwhatfoても省略形はトリガーされません。これにはいくつかの明らかな賢明な理由があります。
ただし、iabをトリガーしてから戻ってスペースを削除しなくても、接尾辞として使用できる略語が必要です。これは可能ですか?例えば、iab fo <backspace>FOOBAR。
回答:
あなたはあなたのvimrcの中に書くことができます: iab fo <BS>FOOBAR
<BS> バックスペースキーに使用する表記です。
特別なキー名の詳細については、以下を参照してください。
:help key-notation
[7:0]の数bなどをいじってカスタマイズする必要があると思います。
bとeしてBとE十分だろう。しかし、それが失敗する他のケースがあるかもしれません、私は知りません。いずれにせよ、最初のバージョンはほとんどの場合うまくいくはずです。
iab fo <BS>foobarで十分でした。ご不便をおかけして申し訳ございませんが、@ djjcastの答えを正解としてください。現在のところ、回答を削除することはできませんが、削除できると削除できます。本当に申し訳ありませんが、私は略語に慣れていません。
<BS>だけでした。私はそのようなことを試したと誓いますが、すべての制御文字を知っているわけではないので、私は<backspace>何かを使用した可能性があります。
:help key-notation
挿入モードで押すだけですCtrl]。これにより、スペースを入力せずに略語が展開されます。
X(FOOBAR)ではありませんX( FOOBAR。Ctrl-]を使用すると、末尾のスペースが削除されます。私は略語を使用できるようにする必要があります- これは起動する最初の空白にも依存します -しかし、それを前の単語と連結させます(これは「サフィックス」が意味することです)。
${1}FOOBAR-それは良い答えです。これを変更したい場合:/または別の回答を追加します。
別の方法として、以下は、どこにでも展開される略語を定義および展開する方法です。
let s:anywhere_abbreviations = {
\ 'fo': 'FOOBAR',
\ 'ab': 'ABBREVIATION',
\ }
function! s:MaybeExpandAbbreviation(trigger)
for key in keys(s:anywhere_abbreviations)
if matchstr(getline('.'), repeat('.', strchars(key)) . '\%' . col('.') . 'c') ==# key
return repeat("\<BS>", strchars(key)) . s:anywhere_abbreviations[key] . a:trigger
endif
endfor
return "\<C-]>" . a:trigger
endfunction
inoremap <expr> <Space> <SID>MaybeExpandAbbreviation("\<Space>")
どこかに展開する必要がある略語をs:anywhere_abbreviations辞書に追加するだけです。このs:MaybeExpandAbbreviation()関数は、トリガーキーが押されたときに略語の一致を検索して展開します- <Space>「anywhere abbreviations」の展開をトリガーするためにマップされます。
上記のs:anywhere_abbreviations辞書では、タイピングwhatfo<Space>はに展開されwhatFOOBARます。
これから出てきた最も単純な2つの答えを要約すると:
バックスペースは省略形で直接使用できます:help keycodes。さまざまな特殊文字がに記載されています。したがって、たとえば:
:iab cdt <BS>cedental
入力trans cdtして取得できますtranscendental。
何年も使用して以来、特に恥ずかしいのですが、共通のsnipMateプラグインを使用すると、パラメーターを前に置くことができます。
snippet cdt
${1}cendental ${2}
タイピングを可能にしcdt、Tabに拡大するcendentalと、あなたが入力できるように、前にカーソルを置きtrans、その後、ヒットTab次の単語の先頭に移動し、再び。