普段nvimを使っているんですが、もっといい方法があるのではないかと思い調べたのですが、言語化出来ず調べても求めてる回答を見つけれなかったのでここで伺わせてもらいます。
例えばint main()
と関数を記述する際main
の後に()
を入力する訳ですが(auto-pairsより自動で後ろの括弧も生成される 但しカーソルは括弧内)この抜け方を自分は**ctrl+[(esc)→A(shift+a)**で行っていますが如何せん指が厳しいのでvimmerはどうしているのか知りたいです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
int main(|
)
のときに(|
にカーソルがある)
どうやって
int main() {
を入力するのか({
部分を入力するのか)という質問だと読み取りました。
自動括弧入力を使っている場合だと普通に閉じ括弧を入力する(この場合は)
を入力して{
を入力する)人が多い気がします。
auto-pairsでできるかはわからないですが、有名どころの https://github.com/cohama/lexima.vim や私の使ってる https://github.com/windwp/nvim-autopairs ではそれができます。
あとはEmacsのキーバインディングをInsertモードに適用して
inoremap <C-f> <right>
Ctrl-fするのもいいのかと思います。
投稿2021/03/28 02:00
編集2021/03/28 02:06総合スコア135
0
既にベストアンサーが出ていますが、この手の設定はleximaが最も自由度が高いと思います。
https://github.com/cohama/lexima.vim
例えば自分は
let s:rules = [ \ { 'char': '<C-f>', 'at': '\%#\s*)', 'input': '<Left><C-o>f)<Right>' }, \ { 'char': '<C-f>', 'at': '\%#\s*\}', 'input': '<Left><C-o>f}<Right>' }, \ { 'char': '<C-f>', 'at': '\%#\s*]', 'input': '<Left><C-o>f]<Right>' }, \ { 'char': '<C-f>', 'at': '\%#\s*>', 'input': '<Left><C-o>f><Right>' }, \ { 'char': '<C-f>', 'at': '\%#\s*`', 'input': '<Left><C-o>f`<Right>' }, \ { 'char': '<C-f>', 'at': '\%#\s*"', 'input': '<Left><C-o>f"<Right>' }, \ { 'char': '<C-f>', 'at': '\%#\s*''', 'input': '<Left><C-o>f''<Right>' }, \ ] for s:rule in s:rules call lexima#add_rule(s:rule) endfor
というルールを適用して、 <C-f>
で抜けられるようにしています。
あとは <Tab>
を設定するなどもいいかと思います。
また、この質問をみて先ほど思いついて設定したのですが
let s:rules += [ \ { 'char': ';', 'at': '(.*\%#)$', 'input': '<Right>;' }, \ { 'char': ';', 'at': '^\s*\%#)$', 'input': '<Right>;' }, \ { 'char': ';', 'at': '(.*\%#\}$', 'input': '<Right>;' }, \ { 'char': ';', 'at': '^\s*\%#\}$', 'input': '<Right>;' }, \ ]
と追加し、 ;
を入力して func(<Cursor>)
から func();<Cursor>
や
<Cursor>)
から );<Cursor>
とセミコロンを挿入できるようにしました。
もしこういった強力な設定を行いたければleximaを使うのがおすすめです。
投稿2021/03/28 05:24
編集2021/03/28 05:27総合スコア132
0
こちらのプラグインを使ってみると良いかと思います
投稿2021/03/28 00:10
編集2021/03/28 00:12総合スコア17
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/28 04:42
2021/03/28 05:17
2021/03/28 08:32