vim Cheats - foolmacky/DevelopDocs GitHub Wiki
- * or # を打鍵すると、カーソル上の単語について現在のバッファを検索。
- *は前方、#は後方だが、何れにせよすべてハイライトされ、n/Nで移動できる
- zz カレント行が画面中央になるように画面スクロール
- Ctrl+e カーソルの位置を変えずに画面を下にスクロール
- Ctrl+y カーソルの位置を変えずに画面を上にスクロール
- <C-w>h 左
- <C-w>j 下
- <C-w>k 上
- <C-w>l 右
- <C-w>w 次のwindow
- <C-w>H 左
- <C-w>J 下
- <C-w>K 上
- <C-w>L 右
- :termでターミナルwindowが自動的に画面分割して開く。ranger配下からでも問題ない
- terminal画面ではコマンドを打鍵した結果はスクロールバックできないが、<C-w>N (ノーマルモード)で出力bufferをvimに取り込んで開くことができる
- a or iを打つと、もとのterminal画面に戻る
- bufferを取り込んだvimで :q するとterminal画面自体が閉じるが、bufferを編集したりしているとterminal&bufferとして残り、vimを終了できない
- 通常はterminal画面でexitするほうがいい。
- :ls 現在のbufferのリストを得る
- sb <buffer NO.> 画面分割してbufferを表示
- つい viwc とやってしまいがちだが、これは無駄だ。ciwc が正しい。 y についても同様
- <行ナンバー>gg or <行ナンバー><Shif>G
- 現状の設定だと、一旦コンソールに検索結果が出て、Enterするとquickfix windowが開く感じで、直接開けないのか調査中
- :cn 次の結果にジャンプ
- :cp 前の結果にジャンプ
- :ccl クローズ
:%s/hoge/foo/gc
//c optionをつける
- shell scriptでもできるのだろうけど、ちょっと処理時間は遅いけど、安定して処理できるにはargsコマンドを使う
- https://yanor.net/wiki/?Vim/%E6%A4%9C%E7%B4%A2/args%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E8%A4%87%E6%95%B0%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E4%B8%80%E6%8B%AC%E7%BD%AE%E6%8F%9B
:args **/*.go
//カレントディレクトリ以下の*.goファイルをリストアップ
:args
//arglistを確認
:argdo %s/foo/hoge/g | update
//リスティングされたファイルについて置換と保存コマンドを実行
^ $ . * [ ] / ~ \ (sedとは異なる)
:diffs <File名>
//最長マッチ:*
%s/^.*,//
//最短マッチ:\{-}
%s/^.\{-},//
//binモードでopen
vim -b hoge.txt
//表示変更、編集
//編集は左側のバイトコードで行う。右側は単なる表示なので、いじっても意味はない
:%!xxd
00000340: b3a2 28d3 ddf5 3518 4f27 e09f 7e0f 4164 ..(...5.O'..~.Ad
00000350: fe04 e118 20c0 b082 9c00 ae38 a404 ecd2 .... ......8....
//編集しても右側の表示はリアルタイムでは変わらない
//表示を戻す
:%!xxd -r
//表示を戻せば、保存できる。
//表示を戻さないで保存すると、バイナリダンプの表示のまま保存される
行の最後には必ずLFが付く。取り除くにはバイナリモードで編集して保存するしかないかも
http://github.com/vim-jp/issues/issues/152
テキストファイルの仕様としては、必ず最後に終端コードが必要
https://hiroakiuno.hatenablog.com/entry/20070409/p1
:%s/,/^M/g
//ctrl+V ctrl+Mと打鍵する
//改行コードのモードの確認、設定
:set ff?
fileformat=unix
:set ff=dos
//dos形式に変更
検索条件としては\nと普通に入れればOK
:g/^$/d
//空行の削除
最初に範囲選択して、「:」を打鍵し、g, sコマンドを打つ
:%s/ \+/ /g
.vimrcに表示するキャラクタを設定
set listchars=tab:»-,trail:-,eol:↲,extends:»,precedes:«,nbsp:%
:set list コマンドで表示される
解除するには:set nolist コマンドを打つ
どのハイライトグループがどのようにハイライトされているかは :highlight コマンドを引数なしで起動することで確認できる
//現在の文字コードを確認
:set enc?
:e ++enc=文字コード
//文字コードのバリエーション: iso-2022-jp euc-jp sjis utf-8 cp932
//ファイルの文字コードを確認
:set fenc?
//2回コマンドを打つ
//それ以降の編集でタブキーを使ったときにも、その設定が使われる
//tab -> space
:set et
:ret
//space -> tab
:set noet
:ret!