0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

vim操作まとめ

Posted at

はじめに

活用しきれていないvimの基本操作についてまとめます。
チートシートとして使用し、作業の効率化を図ることを目的としています。

vimとは

  • Vim(Vi IMproved)は、テキストエディタの一種で、主にUnix系OSで使用される。
  • VimはViエディタの互換性を保ちつつ、多くの機能や拡張性を追加したもの
  • コマンドラインで起動でき、テキストファイルの編集やプログラミングコードの記述など、さまざまな用途に使用される。
  • 通常はコマンドモード、挿入モード、ビジュアルモードの3つの主要なモードを持つ
  • 非常にカスタマイズ性が高く、様々なプラグインや設定オプションを利用してエディタの機能を拡張することができる
  • がっつり開発をするにはIDE(VSCodeやJetbrainsなど)が良いが、補助的にvimを使用することで効率化が図れる

3つのモード

  • コマンドモード(Command mode): エディタの初期モードであり、コマンドを入力してファイルの保存や移動、削除などの編集操作を行う
  • 挿入モード(Insert mode): テキストの挿入や編集を行うモードであり、キーボードの入力がそのままテキストとして挿入される。
  • ビジュアルモード(Visual mode): テキストの選択や範囲指定を行うモードであり、コピー・切り取り・貼り付けなどの操作を行うことができる

vimの基本操作

環境

Windows 11 Home(wsl2)
Ubuntu 20.04 LTS
Cmnder

カーソル移動などの基本操作

コマンド 動作
vim 起動
i Insert Mode
esc Normal Mode
k ↑に移動
j ↓に移動
h ←に移動
l →移動
:q! 保存しないで編集終了

ファイルの保存

コマンド 動作
:w ファイル名 名前を付けて保存
:w 上書き保存
:q 編集終了
:q! 保存しないで編集終了
:wq 保存して終了
i Insert mode
a 次の文字からInsert mode
view Viewモードで起動

削除系の編集

コマンド 動作
vim ./test.txt ファイル指定で開く
i インサートモード
a 次の文字からInsert mode
x 1文字削除
dd 1行削除(コピー可能)
dw 単語削除
2 dd 2行削除
u Undo
Ctrol + r Undo redo

コピー&ペースト

コマンド 動作
yy 一行コピー
p 下にペースト
P 現在行にペースト
2 yy 2行コピー
. 操作をリピート

コマンドモードで実行する

コマンド 動作
: or / Command mode
!python ./a.py(Command mode) コマンド実行
!! 前のコマンドを実行

vimの移動

コマンド 動作
:set number 行番号を表示する
:10 10行名に移動
$ 行末に移動
0 先頭に移動
^ インデントの先頭に移動
{ 段落ごとに上に移動
} 段落ごとに下に移動
[[ セクションごとに上に移動
]] セクションごとに下に移動
:1 or gg ファイルの先頭に移動
G ファイルの最後に移動
ctrl + o 移動前に戻る

検索と置換

コマンド 動作
/{pattern} ex) /test 検索(例はtestを検索している)
n 次の検索結果に移動
N 前の検索結果に移動
R 置換
dw Rよりも単語削除をよく使うケースが多い
:%s/search/replace/g 一括置換
:%s/search/replace/gc 確認しながら置換

Visualモードやインデント

コマンド 動作
o 選択行の下に空白を入れ、インサートモード
O 選択行に空白を入れ、インサートモード
J 行の連結
> 右にインデントを移動
< 左にインデントを移動
v (visual mode) 移動してからy カーソル指定コピー

vimのコンフィグ設定

  • vimの挙動を自動的に設定することが可能
  • 下記のように、設定ファイルに適宜設定を記載する
// Neovimの場合は、vim ~/.config/nvim/init.vim
vim ~/.config/nvim/init.vim
configファイルに記載する設定 説明
set shell=/bin/zsh コマンドの際にはzshを使う
set shiftwidth=4 indentの幅
set tabstop=4 タブに変換されるサイズ
set expandtab タブの入力の際にスペース
set textwidth=0 ワードラッピングなし
set autoindent 自動インデント※set pasteで解除可能
set hisearch Searchのハイライト
set clipboard=unnamed クリップボードへの登録
synatax on SuntaxをEnable

参考文献

現役シリコンバレーエンジニアが教える NeoVim(VIM) + Tmux + Zsh 入門

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?