|
|
52行目: |
52行目: |
| 5. coc.nvim(VSCode 並みの補完・LSP。PHPも補完できる) | | 5. coc.nvim(VSCode 並みの補完・LSP。PHPも補完できる) |
|
| |
|
| :PlugInstall | | :PlugInstall # .vimrc に設定を追記した後で |
|
| |
|
| ==環境とシェル== | | ==環境とシェル== |
2025年3月10日 (月) 23:04時点における版
Vi IMproved
天才ビル・ジョイが自身のプログラミング作業のために作ったエディタ。港の管理運営のために必須。
初期設定
ChatCWIが教えてくれた設定。
# vim .vimrc
" ========== 基本設定 ==========
set number " 行番号を表示
set cursorline " カーソル行をハイライト
set showcmd " 入力中のコマンドを表示
set wildmenu " コマンド補完を強化
set ruler " ステータスラインにカーソル位置を表示
set laststatus=2 " ステータスラインを常に表示
" ========== タブ・インデント ==========
set tabstop=4 " タブ幅を4スペース
set shiftwidth=4 " 自動インデントも4スペース
set expandtab " タブをスペースに変換
set autoindent " 自動インデントを有効化
" ========== 検索設定 ==========
set hlsearch " 検索結果をハイライト
set incsearch " 入力と同時に検索
set ignorecase " 検索時に大文字小文字を無視
set smartcase " 大文字を含めたら区別
" ========== 表示設定 ==========
set nowrap " テキストの折り返しを無効化
set background=dark " ダークテーマ用の配色
syntax enable " シンタックスハイライトを有効化
colorscheme desert " カラースキーム default でもOK
" ========== 便利なキーマッピング ==========
inoremap jj <Esc> " jj で ESC にする(素早く抜けられる)
let mapleader = " " " スペースキーをリーダーキーに設定
nnoremap <leader>s :w<CR> " スペース + s で保存
nnoremap <leader>q :q<CR> " スペース + q で終了
プラグイン
vimプラグインを使えば「軽量なデフォルトvim」をベースに「自分好みのIDE」にしていける。軽量なまま。
# GPTおすすめのプラグイン
1. fzf.vim(超高速ファイル・単語検索)
2. vim-airline(軽量なステータスバー)
3. nerdtree(ファイルエクスプローラー)
4. vim-gitgutter(git 連携)
5. coc.nvim(VSCode 並みの補完・LSP。PHPも補完できる)
:PlugInstall # .vimrc に設定を追記した後で
環境とシェル
コマンド
|
説明
|
:set |
現在セッションのオプションを表示
|
:set shiftwidth=4 |
インデントシフトの初期値
|
:set autoindent |
自動インデントモード
|
:set hlsearch |
検索時のハイライト表示をオン
|
:set wrap |
長文を折り返す
|
:set showmatch |
()や{}の対応表示をオン
|
:set list |
タグや空白などの見えない文字が確認できる
|
:set all |
全てのオプションを表示
|
:sh , ^D |
シェルを起動、終了
|
:!command |
コマンドを実行
|
:n,m!command |
n行目から m行目まで command でフィルタ処理
|
:r !date |
日時情報がカレント行に書き込まれる
|
起動とファイル操作
コマンド
|
説明
|
vi file1 file2 file3 |
file1とfile2をオープン
|
:r file1 |
現在行直下にfile1を全てコピー
|
:5r file1 |
5行目にfile1を全てコピー
|
:w! newfile |
書き込み権限がない場合の一時しのぎ
|
画面分割
コマンド
|
説明
|
^w s , :sp file
|
(split) file を横分割で開く
|
^w v , :vs file
|
(Verticle Split) file を縦分割で開く
|
^w o , :on |
(only) 編集中ファイル以外を全て閉じる
|
^w q
|
現在のウィンドウを閉じる
|
^w + j/k/l/h
|
下/上/右/左のウィンドウに移動
|
^w + [+/-]
|
ウィンドウの横軸を1行広げる/縮める
|
^w + [3>/3<]
|
ウィンドウの縦軸を3つ広げる/縮める
|
:ar |
起動中のファイルをリスト表示
|
:n |
(next) 次のファイルへ移動
|
:rew |
先頭のファイルへ移動
|
:last |
最後のファイルへ移動
|
:e file2 |
file2を編集する
|
:e# , Ctrl + ^ |
直前のファイル編集へ戻る
|
テキスト移動
コマンド
|
説明
|
h , j , k , l
|
左、下、上、右
|
w , W , b , B
|
前、後の単語(大文字は大きいジャンプ)
|
e , E
|
単語の末尾(大文字は大きいジャンプ)
|
) , (
|
次、前の文章へ
|
} , {
|
次、前の空行で区切られたブロックへ
|
%
|
括弧移動
|
行移動
コマンド
|
説明
|
[Enter]
|
次の行
|
0 , ^ , $
|
カレント行の先頭、文字先頭、末尾
|
+
|
下の行の文字先頭
|
-
|
上の行の文字先頭
|
H
|
(Head) 画面の最上行
|
M
|
(Middle) 画面の中央行
|
L
|
(Lass) 画面の最下行
|
nH , nL
|
上、下から n行目
|
z[Enter]
|
カーソル位置を画面の一番上に
|
z.
|
カーソル位置を画面中央に
|
z-
|
カーソル位置を画面の一番下に
|
スクロール
コマンド
|
説明
|
Ctrl + y , Ctrl + e
|
1行ずつ上、下にスクロール
|
Ctrl + u , Ctrl + d
|
半画面ずつ上、下にスクロール
|
Ctrl + b , Ctrl + f
|
1画面ずつ上、下にスクロール
|
検索
コマンド
|
説明
|
tx
|
カレント行内でカーソルより後方にある x の直前にジャンプ
|
Tx
|
カレント行内でカーソルより前方にある x の直前にジャンプ
|
fx
|
カレント行内でカーソルより後方にある x にジャンプ
|
Fx
|
カレント行内でカーソルより前方にある x にジャンプ
|
; , ,
|
カレント行の文字検索を前方、後方に繰り返す
|
/pattern
|
前方にパターンを検索
|
?pattern
|
後方にパターンを検索
|
*
|
カーソル上のテキストを検索
|
n , N
|
直近の検索を前方、後方に繰り返す
|
置換
コマンド
|
説明
|
:s/old/new/
|
カレント行の最初の old を new に置換
|
:s/old/new/g
|
カレント行の全ての old を new に置換
|
:5s/old/new/g
|
5行目の全ての old を new に置換
|
:23,44s/old/new/g
|
23~44行目内の全ての old を new に置換
|
:%s/old/new/ , :1,$s/old/new/
|
ファイル全ての old を new に置換
|
:%s/old/new/c
|
ファイル全ての old を逐一確認しながら new に変換
|
:%s/\(That\) or \(this\)/\2 or \1/
|
ホールドバッファ1,2によりthis or That と置換
|
~
|
大文字/小文字に変換
|
パターンマッチング(正規表現)による高度な置換は『vi入門83~107p』を確認
ジャンプ
コマンド
|
説明
|
Ctrl + G
|
ファイル名、状態、カレント行番号の表示
|
gg
|
ファイル先頭にジャンプ
|
G
|
ファイル末尾にジャンプ
|
23G , :23
|
23行目にジャンプ
|
mx
|
現在位置を x でマーク
|
'x
|
x がある行の先頭にジャンプ
|
`x
|
x にジャンプ
|
挿入と変更
コマンド
|
説明
|
i , a |
カーソルの前、後にテキストを挿入
|
I , A |
行の先頭、末尾にテキストを挿入
|
O , o |
カーソルの上、下にテキストを挿入
|
s , S |
1文字、カレント行をテキストに変更
|
r |
一文字変更
|
cw |
単語変更
|
cc |
カレント行を変更
|
c + [motion] |
モーションで指定した場所までを変更
|
c + nG |
カレント行からn行目までを変更
|
C |
行末まで変更
|
R |
重ね書き
|
10i#- |
#- の組み合わせを10回入力。Vim によるテキスト編集はプログラミング
|
Ctrl + t |
(挿入モード)右にインデント
|
Ctrl + d |
(挿入モード)左にインデント
|
>> |
右にインデント
|
3<< |
3行まとめて左にインデント
|
:5,10 << |
5~10行まとめて右に2インデント
|
削除とヤンク
コマンド
|
説明
|
^w , ^u
|
入力中の単語を削除。入力中の行を削除
|
x , X
|
文字を前方、後方に削除
|
dw
|
単語を直後の空白とセットで削除
|
de
|
単語のみを削除
|
dd
|
カレント行を削除
|
D
|
行末までを削除
|
d + [motion]
|
モーションで指定した場所までを削除
|
d + 7G
|
カレント行から7行目までを削除
|
%d
|
全て削除
|
yw
|
単語のヤンク
|
yy , Y
|
カレント行のヤンク
|
y + [motion]
|
モーションで指定した場所までをヤンク
|
y + 7G
|
カレント行から7行目までをヤンク
|
P , p
|
削除、ヤンクしたテキストをカーソルの前、後にペースト
|
レジスタの活用
コマンド
|
説明
|
:reg
|
レジスタ一覧
|
"a5Y
|
レジスタa にカレント行から5行を登録
|
"AY
|
レジスタa にカレント行を追記
|
"bp
|
レジスタb の内容をペースト
|
^r + a
|
(挿入モードで)レジスタa をペースト
|
^r +
|
(挿入モードで)クリップボードをペースト
|
Exモードの活用
コマンド
|
説明
|
% , 1,$
|
ファイル内全ての行
|
0 , . , $
|
ファイルの先頭、カレント行、最終行
|
x-n
|
xのn行前
|
x+n
|
xのn行後
|
Q
|
exエディタを起動
|
:vi
|
viモードへ戻る
|
:3,5d
|
3行目〜5行目を削除
|
:.,$d
|
カレント行からファイル最終行までを削除
|
:3,5m0
|
3行目〜5行目をファイル先頭に移動
|
:3,5m10
|
3行目〜5行目を10行目に移動
|
:13i → text → . |
13行目に text を挿入
|
:12c → text → .
|
(change) 12行目を text で置き換える
|
その他
コマンド
|
説明
|
.
|
直近の編集コマンドの繰り返し
|
v , V
|
文字、行の選択
|
ggVG
|
ファイル内全てを選択
|
u , U
|
アンドゥ、カレント行の復元
|
Ctrl + r
|
リドゥ
|
J
|
2行の連結
|
:ab
|
ab に登録されている略語の一覧
|
:ab IBM International Business Machines
|
IBM を入力すると勝手に正式名称を展開してくれる
|
:unab
|
ab に登録されている略語を解除
|
保存と終了
コマンド
|
説明
|
ESC , Ctrl + [
|
挿入モードへ
|
:e!
|
一番最初の状態へ戻す
|
:w , :w! , :wa
|
保存、強制的に保存、オープンしているファイルを全て保存
|
:3,5w newfile
|
3〜5行目を newfile として保存
|
:3,5w>>file
|
3〜5行目を file に追記
|
ZZ
|
保存して終了
|
:q , :q!
|
終了、変更を破棄して終了
|