Vimに入門したので勉強したことまとめました
はじめに
学習したことのアウトプットとして書きました。 現在プログラミング学習中の実務未経験の者であり、技術的な内容などに誤りを含む可能性があるので不適切な記述などがありましたらコメントで教えていただけると幸いです
ファイル保存
コマンド | |
---|---|
a | カーソルの場所から1文字進めてInsertModeに入る |
i | カーソルの場所からInsertModeに入る |
ESC | Normal Mode |
view | View Mode(上書き保存しようとするとWarningになる) |
InsertModeとは テキストを入力する際のモードの一つ 参考 https://www.sophia-it.com/content/insert+mode
モード | |
---|---|
Normal | コマンド入力 |
Insert | 文字入力 |
Visual | 文字選択 |
コマンド | 意味 |
---|---|
x | カーソル直下の文字を消します |
:w ファイル名 | 名前をつけて保存 |
:w | ファイルの保存 |
:q | 実行中のタブを閉じる |
:wq | 保存して閉じる |
:q! | 保存しないで閉じる |
:w! | !をつけて強制的に処理 |
編集・削除系の編集
コマンド | 意味 |
---|---|
x | 1文字削除 |
dd | 1行削除 |
5dd | 5行削除 |
dw | 単語の削除 |
u | UNDO(操作を1つ戻す) |
dw | Undo Redo |
Undo Redoって何なのか :fist_tone1:UNDOは「実行したことをなかったことにする」ものであり、 :fist_tone1:REDOは「一度実行したことをもう一度行う」もの。
https://qiita.com/fillips/items/d86b426d8222ad694809
コピー
コマンド | 意味 |
---|---|
yy | 一行コピー |
5yy | 数字の行分だけコピー |
p | 現在行の下にペースト |
P | 現在行にペースト |
. | 直前のコマンドを繰り返す |
コマンドモード
コマンド | 意味 |
---|---|
: or / | Command Mode |
!python http://test.py/ | コマンドの実行 |
!! | 前のコマンドを実行 |
移動
カーソルを
コマンド | 意味 |
---|---|
h | 左に 👈 |
j | 下に 👇 |
k | 上に 👆 |
l | 右に 👉 |
キーボードの並びが hjkl なので 左下上右と覚える
コマンド | 意味 |
---|---|
:set number | 行番号を表示 |
:5 | 特定の行番号へ移動 |
5l | 5文字分右へ |
コマンド | 意味 |
---|---|
$ | 行末に移動 |
0 | 先頭に移動 |
^ | インデントの先頭に移動 |
{ | 段落ごと上に移動 |
} | 段落ごと下に移動 |
[[ | セクションごと上に移動 |
]] | セクションごと下に移動 |
:1 or gg | ファイルの先頭に移動 |
ctrl + o | 移動前に戻る |
G(Shift + g) | ファイルの最後に移動 |
H(Shift + h) | 表示されている画面の一番上に行く |
M (Shift + m) | 表示されている画面の真ん中に行く |
L (Shift + l) | 表示されている画面の一番下に行く |
検索
コマンド | 意味 |
---|---|
/{文字列} | {文字列}を上から下へ検索 |
n | 次の検索結果に移動 |
N(shift+n) | 前の検索結果に移動 |
* | 下側で単語を検索 |
# | 上側で単語を検索 |
置換
コマンド | 意味 |
---|---|
R(shift+r) | 置換 |
dw | 単語を消す |
:%s/search/replace/g | 一括置換 |
:%s/search/replace/gc | 確認しながら置換 |
コマンド | 意味 |
---|---|
J | カーソルがある行に1つ下の行を連結する |
|ページ内検索| | |/hoge|[/]のあとの文字列を検索する(Control-f的なあれ)| |n|[/]で検索した文字列の次の検索候補に飛ぶ| |N|[/]で検索した文字列の前の検索候補に飛ぶ|
シンタックス,ハイライト
コマンド | 意味 |
---|---|
:syntax off | シンタックスをオフにする |
:syntax on | シンタックスをオンにする |
:noh | ハイライトを消す |
:set nohlsearch | ハイライトを設定しない |
:set hlsearch | ハイライトを設定する |
Visualモードとインデント
コマンド | 意味 |
---|---|
o | 選択行の下に空白を入れ、インサートモード |
O(shift+o) | 選択行に空白を入れ、インサートモード |
J | 行の連結 |
> | 右にインデントを移動 |
< | 左にインデントを移動 |
v(Visual Mode)で移動してy | カーソル指定コピー |
コメントアウト
コマンド | 意味 |
---|---|
ctrl + v | Visual Block Mode |
j or k | 複数行を選択 |
:norm I{文字列} | 先頭に挿入する場合 |
:norm A{文字列} | 行末に追加する場合 |
プラグインについて
https://github.com/junegunn/vim-plug
NERDTree
ナードツリー。Vim上でフォルダ階層表示ができる。
https://github.com/preservim/nerdtree
参考 https://qiita.com/zwirky/items/0209579a635b4f9c95eehttps://reisuta.com/nerdtree/
FuzzyFinder
ファイル検索ができる。
https://github.com/junegunn/fzf
vim-fugitive
gitコマンドの操作ができる。
https://github.com/tpope/vim-fugitive
vim-gitgutter
Vim上でファイルの変更をプラス・マイナスの記号で表示してくれる。
https://github.com/airblade/vim-gitgutter
vim-commentary
gc
と打つとコメントアウトができる。 各言語に応じて//や#など自動で対応。
https://github.com/tpope/vim-commentary
vim-polyglot
シンタックスをいい感じにする。 csvはカンマがみやすくなる。
https://github.com/sheerun/vim-polyglot
coc-nvm
コードの補完をしてくれる。
https://github.com/neoclide/coc.nvim
最後に
自転車乗るのと同じで普段から練習しないと身に付かないと思いました。
さらに詳しい記事、参考にした記事
https://dev.classmethod.jp/articles/vim-quickstart-with-vimtutor/
https://qiita.com/Hiyajo/items/9f87c5687652da42f275
https://qiita.com/colorrabbit/items/755cfbb0e97d48280775
https://www.udemy.com/course/vim-tmux-zsh/
https://reisuta.com/plugin-recommend/#プラグインの導入方法