Vim

存放vim的筆記。

使用

比較差異

vim -d file1 file2

檔案格式轉換(dos to unix)

:set ff=unix

將單行字首轉成大寫

s/\<./\u&/g

出處Capitalize first letter of each word in a selection using vim

遠程編輯

透過scp協議編輯遠端檔案

vim scp://user@ssh.example.com/file1.txt

在vim開啟遠程檔案

:e scp://user@ssh.example.com/file1.txt

作為二進位編輯器 (Patch)

  1. 使用vim -b binary開啟檔案
  2. :%!xxd
  3. 修改完成之後輸入:%!xxd -r
  4. :x保存並退出

快捷鍵

:x:wq的功能,也可以ZZ,無條件退出採用ZQ

hint: 熟悉快捷鍵並使用Macro

重複動作

其他筆記

至于其他筆記非常推薦查看 Moskys Vim Shortcuts

錄製巨集

搜尋與取代

範圍

模式(g,c,i)

部份取代 (vim regex group)

比方說以下內容

gameA
gameB
gameC
gameD

希望能夠取代成以下內容

mapA
mapB
mapC
mapD

這時可以鍵入以下指令達成此功能。

:%s/\(game\)\(\w\)/map\2/g

\2代表group 2,\1代表group 1。

多buffer取代

:bufdo %s/被取代/取代/ge | update

參見Search and replace in multiple buffers

插件

ycm配置

./install.py --clang-completer --go-completer --java-completer

採用mkdx輔助編寫markdown文件,含有相關鍵綁定。

Modeline

參見手冊,可以對特定檔案做個別的配置,不過因為安全問題1不建議開啟

:h modeline

example 設定檔案格式為markdown

; vim: set ft=markdown :

vim 自動加入 header

如 Bash 或 Python

autocmd BufNewFile *.py 0put =\"#!/usr/bin/env python\<nl>\"|$
autocmd BufNewFile *.sh 0put =\"#!/bin/bash\<nl>\"|$

參考 Automatically inserting a header in vim

環境變數

如果要讀取環境變數,採用 $ 作為前綴就可以讀取。


Linux Editor