[解決済み] Vimで変数名を素早く変更するには?
質問
私は Vim を使って、多くの一文字の変数名を含む C や Perl のコードを読み込んでいます。
コードを読んでいる途中で、変数名をより意味のあるものに変更するコマンドがあれば、残りの部分をより速く読むことができるのにと思います。
Vim にこれを素早く行えるようなコマンドはありますか?
正規表現ではうまくいかないと思うのですが、なぜですか?
-
同じ一文字の名前が、異なるスコープブロックにおいて異なる目的を持つ可能性がある。
-
同じ文字の組み合わせが、別の長い変数名、文字列リテラル、またはコメントの一部である可能性があります。
既知の解決策はありますか?
どのように解決するのですか?
現在のスコープで定義されている変数の名前を変更する方法は次のとおりです。
{}
.
変数の使用法にカーソルを移動します。押す
gd
. つまり、カーソルを定義に移動させるということです。
次に
[{
- を押すと、スコープの始まりになります。
次に
V
- を押すと、ビジュアルラインの選択がオンになります。
このとき
%
- を押すと、反対側の
}
にジャンプし、全範囲が選択されます。
押す
:s/
- を押すと、代入コマンドが開始される。
<C-R>/
- を押すと、変数名と一致するパターンが挿入されます (その変数名は
gd
).
/newname/gc<CR>
- を指定すると、検索と置換が開始され、一致するたびに確認が行われます。
ここで、マクロを記録するか、より良い方法として、キーをマッピングする必要があります。
最終的なマッピングは以下の通りです。
" For local replace
nnoremap gr gd[{V%::s/<C-R>///gc<left><left><left>
" For global replace
nnoremap gR gD:%s/<C-R>///gc<left><left><left>
これをあなたの
.vimrc
に記述するか、そのまま実行します。
この後
gr
を押すと、ローカル変数に
:s
コマンドを入力する必要があります。
new_variable_name
を入力し
入力
.
関連
-
[解決済み] Vimエディタを終了するにはどうすればよいですか?
-
[解決済み] 変数が「未定義」または「NULL」であるかどうかを判断するにはどうすればよいですか?
-
[解決済み] viで複数行を素早くインデントする
-
[解決済み] Vimで文字を改行で置き換える方法
-
[解決済み] Vim 直前の検索ハイライトをクリアする
-
[解決済み] Bashで変数が設定されているかどうかを確認する方法は?
-
[解決済み] Vimで大文字小文字を区別しない検索をする方法
-
[解決済み] Vimで行全体を複製する方法は?
-
[解決済み] vimでタブをスペースに置き換える
-
[解決済み】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ファイル内の<leader>とは何ですか?
-
[解決済み] EmacsとVimの違い
-
[解決済み] Vimでカーソルを動かさずに画面を移動させる方法は?
-
[解決済み] Viでファイル全体のインデントを修正するには?
-
[解決済み] Vimで現在のファイル名を変更する
-
[解決済み】Vimで'gf'から戻るにはどうしたらいいのか?
-
[解決済み] Vim: 起動時のバッファと同じように、別の [No Name] バッファを開くにはどうしたらいいですか?
-
[解決済み] カーソル下の1単語を置換する方法は?
-
[解決済み] vimで検索する?
-
[解決済み] なぜvimが私のコードをラップするのを止められないのですか?