Skip to content

Instantly share code, notes, and snippets.

@mamemomonga
Last active July 12, 2024 22:32
Show Gist options
  • Save mamemomonga/21a17641247e44f0631bb31755dd6619 to your computer and use it in GitHub Desktop.
Save mamemomonga/21a17641247e44f0631bb31755dd6619 to your computer and use it in GitHub Desktop.
vimチートブック

vim便利帳

[CTRL]	コントロールキー
[N]	数字

i	カーソルの前に文字列を挿入
a	カーソルの後に文字列を挿入
o	カーソルの下に文字列を挿入
O	カーソルの上に文字列を挿入

h	一つ左(←)に移動
l	一つ右(→)に移動
j	一つ下(↓)に移動
k	一つ上(↑)に移動

[N]h	N文字左(←)に移動
[N]l	N文字右(→)に移動
[N]k	N行上(↓)に移動
[N]j	N行下(↑)に移動

CTRL+e  下にスクロール
CTRL+y   上にスクロール 

:開始,終了  範囲指定

u	アンドゥ
.	直前作業の繰り返し
J	次の行を連結

ZZ	保存終了
:w NewFilename	NewFilenameとして保存
:w	上書き保存
:wq	保存して終了
:q	終了
:q!	保存せず終了
:e ファイル読み込み
:e! 現在のファイルを保存せずファイル読み込み

:sh	一時シェル、exitで終了

0	行頭に移動
$	行末に移動

^	行の先頭の文字に移動
[N]$	N行先の行末に移動

H	現在ページの先頭行
L	現在ページの末尾行

[CTRL]f	カーソル位置から1ページ下に移動
[CTRL]b	カーソル位置から1ページ上に移動

[N]G	先頭行からN行目に移動
G	ファイル末尾へ移動

p	前にペースト
P	後にペースト

[N]yh	N文字左(←)をコピー
[N]yl	N文字右(→)をコピー
[N]yk	N行上(↓)をコピー
[N]yj	N行下(↑)をコピー

yf[文字]	行内の[文字]が現れるところまでコピー
y/[検索文字列]	検索文字列が現れるところまでコピー

Y	行をコピー
yy	行をコピー

x	後をカット(削除)
X	前をカット(削除)
dd	行をカット(削除)

v	文字範囲指定開始
V	行範囲指定開始
[CTRL]V	ブロック範囲指定開始

範囲指定後の処理
d	カット(削除)
y	範囲指定後コピー
r	カットして挿入
~	大文字小文字を反転
U	大文字にする
u	小文字にする
J	連結
>	インデント追加
<	インデント削除

/文字列	下へ検索
?文字列	上へ検索
n	下方検索
N	上方検索

:%s/検索文字列/置換文字列/[ENT]	次に出現する検索文字列を置換
:%s/検索文字列/置換文字列/g[ENT]	すべての検索文字列をすべて置換
:[A],[B]s/置換前文字列/置換後文字列/g[ENT]	A〜B行の間の検索文字列をすべて置換


Perl風拡張正規表現を使うには、/\vを使う
http://d.hatena.ne.jp/tyru/20111214/play_with_vim_regexp

行末のスペースにマッチ
  /\v\s+$

:f	ファイル情報表示
[CTRL]G	ファイル情報表示

:disp   レジスタの表示
"0p     0レジスタをペースト

q[英文字]	キーボードマクロ記録開始
q	キーボードマクロ記録終了
@[英文字]	キーボードマクロ再生
[N]@[英文字]	N回繰り返してキーボードマクロ再生

:set all	オプション一覧の表示

:set backup	バックアップを取る
:set nobackup	バックアップを取らない

:set number	行番号を表示する
:set nonumber	行番号を表示しない

:set tabstop=2	TAB 幅を 2 文字にする

:set list	タブや改行を表示する
:set nolist	タブや改行を表示する

:set wrap	折り返しをする
:set nowrap	折り返しをしない

:set textmode	改行コードをCRLFにする
:set notextmode	改行コードをLFにする

:set fileencodings=iso-2022-jp,utf-8,cp932,euc-jp,,ucs2le,ucs-2
:set fenc=cp932	Shift-JISで保存する
:set fenc=euc-jp	EUC-JPで保存する
:set fenc=utf8	UTF8で保存する

:set scrolloff=5	スクロール時に5行の余白をつける

指定できる文字コード
utf-8, euc-jp, cp932, iso-2022-jp

文字コードを指定して開く
$ vim "+e ++enc=文字コード ファイル名"

文字コードを指定して開き直す
:e ++enc=文字コード

指定できる改行コード
unix, dos, mac

改行コードを指定して開く
$ vim "+e ++ff=改行コード

改行コードを指定して開き直す
:e ++ff=改行コード

マルチウインドウ(vim)
CTRL+w s	マルチウインドウ(水平分割)
CTRL+w v	マルチウインドウ(垂直分割)
CTRL+w j	下のウインドウに移動
CTRL+w k	上のウインドウに移動
CTRL+w w(CTRL+w)	次のウインドウに移動
CTRL+w p	前のウインドウに移動
CTRL+w q	カレントウインドウを閉じる
CTRL+w o	カレント以外のウインドウを閉じる
CTRL+w +	カレントウインドウを大きくする
CTRL+w -	カレントウインドウを小さくする
CTRL+w <	カレントウインドウを小さくする
CTRL+w >	カレントウインドウを大きくする
:vs	マルチウインドウ(垂直分割)
:sp	マルチウインドウ(水平分割)

分割した内容の入れ替え・縦横入れ替え
<C-w> J
<C-w> K
<C-w> L
<C-w> H
※J、K、L、Hは全てLargeです。
http://d.hatena.ne.jp/takahiro_jinno/20111111/1321017003

:new	無名バッファの作成
:b filename
:sb filename	ウィンドウ分割して開く
:vert sb filename	垂直分割して開く
:ls	ファイルバッファの一覧表示
:bn	次のバッファ
:bp	前のバッファ
:b#	直前のバッファ
:bf	最初のバッファ
:bl	最後のバッファ

ファイルブラウザ
:Explore

<Enter>	カーソル下のファイルを開く、ディレクトリに移動する
o	カーソル下のファイル、ディレクトリを別のウィンドウで開く
p	カーソル下のファイル、ディレクトリをプレビューウィンドウで開く
x	カーソル下のファイルを関連付けられたアプリケーションで開く
s	ファイルの並び順を変更する(押すたびに、ファイル名、サイズ、日付が切替る)
r	ファイルの並び順を逆にする
i	ファイルの詳細情報を表示する
-	一つ上のディレクトリに移動する
?	ヘルプを表示する

vimで便利な折りたたみのメモ

よく使うコマンド
zi	折り畳みの有効無効の切り替え
zf	折り畳みを作成する
za	折り畳みの開け閉め
zd	折り畳みを削除する

時々使うコマンド

zA	折り畳みの開け閉め(再帰)
zD	折り畳みを削除する(再帰)
zE	全ての折り畳みを削除
zR	全ての折り畳みを開く
zM	全ての折り畳みを閉じる

折り畳みの種類の切り替えとか

set fdc=0	折り畳みカラム幅の設定
set fdm=manual	手動
set fdm=marker	マーカー
set fdm=indent	インデント

CTRL-g	ファイル内での位置とファイルの状態を表示

まとめてコメントをつける

開始点に移動して CTRL+V (ビジュアル矩形)
終了点に移動して I (大文字のI)

これもいい感じ http://d.hatena.ne.jp/tanakaBox/20070409/1176062438

自動インデントの設定

有効
:set autoindent
無効
:set noautoindent

短縮形

:se ai
:se noai

現在設定されているviのオプションを確認

:set

タブをスペースでいれる

:set expandtab

タブはタブでいれる

:set noexpandtab

ペーストの時インデントしない

:set paste
または
:a!
 ペースト
ESC

 http://d.hatena.ne.jp/cos31/20080121/1200885196

モードラインを使って、ファイルごとにvimエディタのオプションを指定する。
http://nanasi.jp/articles/howto/file/modeline.html
# vim:set expandtab fenc=euc-jp ff=unix ft=perl:

# vim:set expandtab fenc=utf-8 ff=unix ft=perl:

ヘルプについて

jhttp://webtech-walker.com/archive/2009/08/19092113.html
jfiletypeがhelpのとき、単語の上で<C-]>でその単語にジャンプ。
j<C-t>で元の位置に戻る。これ覚えておくだけでhelp読む効率が結構あがる。

ヘルプを縦分割
:vertical belowright help word

で右側に縦分割でヘルプが開く。僕は縦分割の2ペインで作業することが多いのでこの設定にしてる。
nnoremap <Space>h :<C-u>vert bel h<Space>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment