[解決済み] Vimでコマンドのエイリアスを作成する方法は?
2022-05-05 20:17:55
質問
Vimは私がプログラミングをするときに好んで使うテキストエディタですが、そのため、いつも特に厄介な問題に遭遇しています。
頻繁に、バッファを保存して他の雑多なタスクに進む必要があるとき、私は典型的な方法をとります。
:w
しかし、私はいつも(50%以上の確率で)、そのことを利用することができます。
:w
. 当然ながら、Vim は私に怒鳴ります。
W
は無効なコマンドです。
E492: Not an editor command: W
私の質問は、どのようにすれば
Vim のコロンコマンドのエイリアス
. 特に、以下のようなエイリアスを作成する方法を教えてください。
W
を
w
.
というプロセスを意識しています。 マップキー を特定の コマンド しかし、それは私が求めているものではありません。
解決方法は?
補完をそのままにするには
cnoreabbrev W w
を置き換えます。
W
をコマンドラインから
w
ただし、その後に単語文字が続いたり先行したりしない場合のみです。
:W<CR>
に置き換わります。
:w<CR>
しかし
:Write
にはなりません。(これは、予想外のものも含めて、一致するすべてのコマンドに影響することに注意してください。例えば、コマンド
:saveas W Z
は次のように置き換えられます。
:saveas w Z
ということで、注意してください)。
更新情報
私ならこう書きます。 今 :
cnoreabbrev <expr> W ((getcmdtype() is# ':' && getcmdline() is# 'W')?('w'):('W'))
機能として
fun! SetupCommandAlias(from, to)
exec 'cnoreabbrev <expr> '.a:from
\ .' ((getcmdtype() is# ":" && getcmdline() is# "'.a:from.'")'
\ .'? ("'.a:to.'") : ("'.a:from.'"))'
endfun
call SetupCommandAlias("W","w")
これは、コマンドの種類が
:
で、コマンドは
W
よりも安全です。
cnoreabbrev W w
.
関連
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] Vimエディタを終了するにはどうすればよいですか?
-
[解決済み] git に自分の好きなエディタを使わせてコミットするにはどうしたらいいですか?
-
[解決済み] Vimで文字を改行で置き換える方法
-
[解決済み] Vim 直前の検索ハイライトをクリアする
-
[解決済み] Vimで大文字小文字を区別しない検索をする方法
-
[解決済み] Vimで行全体を複製する方法は?
-
[解決済み] パラメータを取るBashのエイリアスを作る?
-
[解決済み] Vimのマッピングコマンドであるremap, noremap, nnoremap, vnoremapの違いは何ですか?
-
[解決済み】vimの「sudoで書く」トリックはどうやるの?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] .vimrcファイルはどこですか?
-
[解決済み] Vim 空白行の削除
-
[解決済み] Vimのコマンドラインにヤンクのテキストを貼り付ける方法
-
[解決済み] 開いているタブをすべて一度に閉じるにはどうすればよいですか?
-
[解決済み] Vimで行全体を上下に移動させる
-
[解決済み】Vimで'gf'から戻るにはどうしたらいいのか?
-
[解決済み] vimでカレントファイルの表示名?
-
[解決済み] Vimでの大文字小文字を区別しない置換
-
[解決済み] Vimで分割ウィンドウを失わずにバッファを削除する方法は?
-
[解決済み] 既存のウィンドウを新しいタブに移動するにはどうすればよいですか?