DelimitMate を使用すると、閉じ括弧が自動生成されます。括弧内の入力が終わったら、閉じ括弧の右側にすばやく移動するには、どのキー ストロークを押せばよいでしょうか? (今は手動で ESC を押してから 'a' を押す必要があります)
8 に答える
これらの自動終了プラグイン (Eclipse などの IDE に見られる元の機能の実装のようなもの) のアイデアは、終了文字を入力するだけでそれを乗り越えることです。プラグインはこの状況を検出し、文字を挿入する代わりに、既存の自動挿入されたものを飛び越える必要があります。
それがうまくいかない場合は、いくつかの代替プラグインが提供されています。Vim Tips Wikiにそれらのリストがあります。
delimitMateを使用Shift-tab
すると、現在の区切り文字からControl-G g
飛び出し、ネストされた区切り文字から抜け出すことができます。何も再マップする必要はありません。
自動ペアリングのフライ モードを試すことができます
例えば:
( hello| world )
press ) at |
( hello world )|
ジャンプが正しくない場合は、 を使用<M-b>
してバック インサートを実行します。
例えば:
(hello| world()
press ) at |
(hello world()|
press <M-b>
(hello)| world()
リポジトリ: https://github.com/jiangmiao/auto-pairs
プラグイン: http://www.vim.org/scripts/script.php?script_id=3599
追加
let g:AutoPairsFlyMode=1
フライモードをオンにする.vimrcへ
カスタムマップを作成できます。モード中に閉じ括弧の右側に行きたいと思いますinsert
。.vimrc
このマッピングに追加するだけです:
:inoremap <F8> <ESC>f)a
このようにしてinsert mode
、括弧内に書き込みを終了するとF8、カーソル広告が閉じ括弧の右側に表示されます。必要に応じて、 の代わりに別のキーを使用して、マップされたキーを変更できますF8。
ケントがコメントで言ったように、より一般的な解決策は次のようになります。
:inoremap <F8> <ESC>%%a
これは、[
および{
括弧で機能します。
新しい行に入力する場合は、A
どちらが行末にテキストを追加するかを試します。
オートクローズをインストールしました。私が現在していることは(「私」はカーソルです)
- (xxxxI)
- ( xxxxI )
- ( xxxxIxx )
- text (xxxxI) other text
- text ( xxxxI ) other text
- text ( xxxxIxx ) other text
マッピングを作成するだけ<esc>%%a
で、上記の場合、カーソルが移動します(...)I..whatever
引用符では機能しません。
パーティーには少し遅れましたが、カスタム マッピングなしで簡単に実行できることに注意してください。挿入モードでは、<C-O>
(デフォルトのマッピング) を押すと、単一の通常モード コマンドを入力できる「ワン ショット」通常モードに入ることができます。
あなたの質問に答えるために、あなたができることは<C-O>a
.