■ はじめに
VIM の コマンドモード の よく使う Tips をまとめておく。
目次
【1】コマンドモード 【2】実用例 例1:Pythonを実行する 例2:ファイル内をソートする 例3:差分をとる 例4:重複削除 例5:囲み文字を入れる
【1】コマンドモード
* vi には、以下の2つのモードがある
[1] コマンドモード
* カーソルの移動の他文字の削除や検索、保存などが実行できるモード
[2] 入力モード
* 実際にテキストを入力するモード
項目 | 説明 |
---|---|
コマンドモード | 「:」or 「/」 |
前のコマンドを実行 | 「!!」 |
元に戻す | 「u」 |
【2】実用例
例1:Pythonを実行する
vim test.py # 以下の「test.py」をコピペしたら保存して、[Esc]キー # 『!python3 test.py』 # で実行
test.py
def test_func(): print('Hello world!') test_func()
例2:ファイル内をソートする
* 「コマンドモード (:)」にして以下を行う
コマンド例
# ファイル内容をソートする :%!sort # % : 現在のバッファ # ! : システムのコマンドを実行 # -u オプション : ユニーク処理 :%!sort -u
vimでファイル全体をソートする方法 - neovim/vim入門
例3:差分をとる
https://maku77.github.io/vim/file/vimdiff.html
コマンド例:仕事でやった内容
# ファイル内容をソートする :%!sort # 新規で開く :vnew # 別ファイルを開く :e other.txt :%!sort # 差分 (Ctrl+F: 次へ移動、Ctrl+B: 戻る) :diff this
例4:重複削除
https://qiita.com/i47_rozary/items/e523f6b7f172fd141d61
:sort u
練習
# 実行前(コピーしてVIMに張り付ける) table3 table1 table2 table1 table3 table2 table1 table4 table2 # 実行後 table1 table2 table3 table4
例5:囲み文字を入れる
# 全置換 :%s/\(\w\+\)/"\1"/gc # 全置換(確認無し) :%s/\(\w\+\)/"\1"/g
https://github.com/clear-code/ClearCode.vim/issues/7
解説
:%s/置換前/置換後/gc % : ファイル全体を対象とする s : 置換する g : 行にある全てのマッチした文字列を置換する (c : マッチした文字列を1つずつ確認しながら置換する)
練習
# 実行前(コピーしてVIMに張り付ける) table3 table1 table2 table1 table3 table2 table1 table4 table2 # 実行後 "table1" "table1" "table1" "table2" "table2" "table2" "table3" "table3" "table4"
関連記事
VIM ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2016/09/15/233623
VIM ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2023/09/01/000000
VIM ~ あれこれ編 ~
https://dk521123.hatenablog.com/entry/2023/08/04/225503
VIM ~ VimGolf ~
https://dk521123.hatenablog.com/entry/2023/06/09/000000
VI エディタ
https://dk521123.hatenablog.com/entry/2016/04/27/232800
ネットワーク系コマンド ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2016/07/27/214633