Vim入門 置換 ~プラグインを使って楽に置換~
ターゲットとしている人
- Vim初心者の方
- Vimで置換の方法がわからない人
- Vimで置換のプラグインをまだ使ってない人
この記事を読むと理解できる事
- Vimで楽に置換をする方法が理解できる
- プラグインマネージャのインストールができる
- 置換プラグインを利用することができる
はじめに
この記事では初心者向けに置換の仕方やプラグインの利用の仕方までを簡潔にまとめたものです。
以下のsample.txt
を例として置換する方法を記述します。
hoge
hoge
hoge
fuga
piyo
hoge
対象の文字全てを置換
対象の文字全てを置換する場合、vimでは以下のようにすることで置換することができます。
:%s/置換前の文字/置換後の文字/g
末尾のg
は対象のファイルの該当する全てに対して置換という意味です。
仮に、sample.txt
のhoge
という文字全てをfoo!!
に変換したい状況だとしましょう
その場合は以下のようにすることで置換することが可能です!
:%s/hoge/foo!!/g
結果
foo!!
foo!!
foo!!
fuga
piyo
foo!!
特定した行のみ置換する
先ほどは全行の置換でした。以下のようにすると指定した行のみを置換することができます。
範囲の最初の行,範囲の最後の行s/置換前の文字/置換後の文字/g
仮に、sample.txt
の1 ~ 4行目のhoge
という文字全てをfoo!!
に変換したい状況だとしましょう
その場合は以下のようにします!
1,4s/hoge/foo!!/g
結果
foo!!
foo!!
foo!!
fuga
piyo
hoge
mapを活用しよう
でもちょっと待ってください。いちいち:%s
などをいちいちタイピングするのは非常に作業効率が悪いのではないのでしょうか。(めんどくさいし)
そんなときは.vimrc
にmap
を追加して楽をしましょう!
" この行はお使いの.vimrcにまだ書いていないのなら、これを追加してください
let mapleader = "\<Space>"
" Spaceを押した後にrを押すと :%s/// が自動で入力される
nnoremap <Leader>r :%s///g<Left><Left><Left>
この設定を加えた後にSpaceを押してrを押すと以下のようになると思います
自動で:%s///
と言う文字が入力されました!
このような感じでmap
を利用すると楽をすることができるので、どんどん利用しましょう!
プラグインを使って置換する
プラグインを使って楽をして置換をすることができます。
筆者が調べた感じ、以下のプラグインが人気のようでした
いずれも高性能なプラグインなのでこちらを利用して見てください。
ついでに、自作したプラグインを宣伝させてください🙇♂️
vim-easy-replace (ソースコードはこちらから)
以下のような特徴があります
- 置換対象となる文字をリアルタイムでハイライト
-
:%s/
のような文字を打つ必要がない - 簡単操作
- 指定した行数に対してのハイライト・置換が可能
インストール方法
既にVimプラグインマネージャを利用している方は読む必要はありません。
まずはVimのプラグインを管理するプラグインマネージャをインストールしましょう!
この記事では例としてvim-plugをインストールします。(より詳細を知りたい方はvim-plugのREADMEを見るとより理解が深まると思います)
まずはターミナルを開き、以下のコマンドでvim-plug
をインストールしましょう
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
次に、.vimrc
を開いて、以下を追加しましょう!!
call plug#begin('~/.vim/plugged')
" vim-easy-replaceを利用する
Plug 'kqito/vim-easy-replace'
call plug#end()
上記を追加したら、一旦vimを終了し、再度vimを開き直します。
最後に:PlugInstall
と入力し、実行します。
これでvim-plug
とvim-easy-replace
のインストールが完了しました!
そして、以下のコードがまだ.vimrcに書いていないのなら追記しておきましょう!
let mapleader = "\<Space>"
利用方法
一般的な利用
初期設定は<Leader>ra
となっているので、「スペース、r、a」と押すことで起動することができます。
その後は置換対象
を入力し、その後、置換後の文字
を入れるだけです。
また、<Leader>rc
と入力するとカーソル下にある単語を置換対象とすることができます。
指定した範囲での置換
Vimではv
を押すとビジュアルモードに移ることができ、範囲を指定することができます。
この状態で<Leader>ra
または<Leader>rc
することでその範囲に対して置換することができます。
設定
<Leader>ra
などのmapを変更したい場合には以下のような設定を.vimrc
に追記することで変更が可能です。
" Easy-replaceを使う (デフォルト: <Leader>ra)
let g:easy_replace_launch_key = '新しいmap'
" ビジュアルモードからeasy-replaceを使う (デフォルト: <Leader>ra)
let g:easy_replace_launch_in_visual_key = '新しいmap'
" カーソル下の単語に対してeasy-replaceを使う (デフォルト: <Leader>rc)
let g:easy_replace_launch_cword_key = '新しいmap'
" カーソル下の単語に対してビジュアルモードからeasy-replaceを使う (デフォルト: <Leader>rc)
let g:easy_replace_launch_cword_in_visual_key = '新しいmap'
また、ハイライトの色を変えるには以下を追記します。
let g:easy_replace_highlight_ctermbg = '新しい色'
let g:easy_replace_highlight_guibg = '新しい色'
さらに詳しい設定はこちらにまとめてあります。
その他のプラグイン
世の中にはたくさんのプラグインがありますので是非利用してみてください
LSP系
筆者が利用しているおすすめプラグイン
こちらも参考になります
Author And Source
この問題について(Vim入門 置換 ~プラグインを使って楽に置換~), 我々は、より多くの情報をここで見つけました https://qiita.com/kqito/items/67b8f1660d7525ccdf72著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .