歡迎和你們交流技術相關問題:
郵箱: jiangxinnju@163.com
博客園地址: http://www.cnblogs.com/jiangxinnju
GitHub地址: https://github.com/jiangxincode
知乎地址: https://www.zhihu.com/people/jiangxinnjuhtml
ctrl + opython
刪除3104至5403行之間的內容:git
:3104,5403d
當光標處在函數名稱時:按K便可進入函數說明(至關於man),也可使用nK制定man的級別github
打開一個文件,在該文件下複製幾行到另外一個文件(如到test.txt),會覆蓋目標中的內容vim
10,100w!test.txt
在該文件下複製幾行到另外一個文件,但不會覆蓋原內容,即追加windows
10,100w!>>test.txt
在一個文件中複製幾行到緩衝區python3.x
"anyy
在另外一個文件中粘貼app
"ap
有時候從編輯器裏面複製粘貼代碼到vim中,代碼格式會徹底亂套。其緣由是vim開啓了smartindent(智能縮減)或autoindent(自動對齊)模式。爲了保持代碼的格式,在粘貼前能夠先中止上面的兩種模式,命令爲:編輯器
:set nosmartindent :set noautoindent
爲了一個粘貼搞出這麼多事來,確實是麻煩。不過還有一個更加簡單的方法,用命令開始粘貼模式,即:函數
:set paste
因爲粘貼模式和上面的smartindent、autoindent模式是互斥的,而smartindent是不可少的,因此粘貼完後使用下面的兩條命令之一來關閉粘貼模式。
:set nopaste :set paste!
另外還能夠經過綁定自定義快捷鍵的方式來快速切換,例如將下面配置加入到.vimrc中
方式1:
set pastetoggle=<F4>
方式2:
:map <F8> :set paste :map <F9> :set nopaste
注意:方式1在閱讀和編輯模式下均可以使用,對粘貼模式開啓和關閉進行切換;方式2是在閱讀模式下使用,按下相應的快捷鍵就至關於執行後面定義的命令。
vim 在插入模式下
:set backspace=indent,eol,start
或者:
set nocompatible
:0,$s/^/#/gc " 在行首加一個#號 :6,10s/^/#/gc " 在6~10行的行首加一個#號 :%s/^ *//g " 刪除行首的空格 :%s/ *$//g " 刪除行尾的空格 :%s/^\n//g " 刪除空行 :g/^s*$/d " 刪除空行
若是咱們想以第4列數據進行排序,能夠在vim中如此作:
1,12!sort -r -n -k4.1,5 -r 降序排序 -n 按數字大小排序 -k,表示根據那個字段排序,4.1,表示第4列第一個字符開始 ,5表示到第5個字段爲結束 -t 後面跟分隔符,缺省是空格
在VIM裏面, 若是你要把從當前行如下20行按字母順序排序
.,+20!sort
vim尚未啓動的時候:在終端裏輸入
vim file1 file2 ... filen
vim已經啓動,輸入
:open file
同時顯示多個文件:
:split :vsplit
文件間切換,對於用(v)split在多個窗格中打開的文件,這種方法只會在當前窗格中切換不一樣的文件。
Ctrl+6—下一個文件 :bn—下一個文件 :bp—上一個文件
在窗格間切換的方法
Ctrl+w+方向鍵——切換到前/下/上/後一個窗格 Ctrl+w+h/j/k/l ——同上 Ctrl+ww——依次向後切換到下一個窗格中
網頁經常會出現亂碼的狀況,通常都是編碼設置不對形成的。例如一個網頁源文件的編碼不是utf8的,但聲明爲utf8<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
網頁就會出現亂碼。能夠用vim修改源文件編碼爲utf8,命令是
:set fileencoding=utf-8
若是用vim打開文件時裏面有亂碼,可能用上面的命令修改文件後沒法保存。能夠用其餘軟件打開文件,而後把內容拷貝到vim裏再保存就好了。
Vim/Gvim 在中文 Windows 下的字符編碼有兩個問題:
第一個問題的解決辦法是在 ~/.vimrc 中加入如下配置:
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
第二個問題的解決辦法是強制要求 Vim 的內部編碼採用某種 UTF 編碼。好比 UTF-8:
set encoding=utf-8
可是,把 Vim 的內部編碼設爲 UTF-8 會帶來如下新問題
要解決非 GUI 界面的 vim 的亂碼問題,須要設置終端編碼爲系統默認編碼:
set termencoding=cp936
而要讓提示信息不亂碼則要須要使用 UTF-8 版本的提示信息:
language messages zh_CN.UTF-8
綜上所述,在中文 Windows 下正確配置字符編碼,須要把如下內容加入你的 ~/.vimrc 中
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1 set encoding=utf-8 set termencoding=cp936 language messages zh_CN.UTF-8
:help leader
ctags工具是用來遍歷源代碼文件生成tags文件,這些tags文件能被編輯器或其它工具用來快速查找定位源代碼中的符號(tag/symbol),如變量名,函數名等。好比,tags文件就是Taglist和OmniCppComplete工做的基礎。
sudo apt-get install ctags
在程序的根目錄下運行ctags -R,生成tags文件,而後在編輯程序時按Ctrl+]就會跳轉到當前光標所在東西的定義處。如有多個tag,執行:ts,進行選擇。按Ctrl+o便可跳回。不過,當修改過代碼後,須要從新生成tags。
有時候要使用VIM打開了一些文件,可是在其餘地方把次文件改動了,例如使用git進行checkout等操做,須要從新載入此文件。
1 從新載入當前文件:
:e :e! #放棄當前修改,強制從新載入
2 從新載入全部打開的文件:
:bufdo e 或者 :bufdo :e! :bufdo命令表示把後面的命令應用到全部buffer中的文件。
vim中大小寫轉化的命令是:gu或者gU,形象一點的解釋就是小u意味着轉爲小寫,大U意味着轉爲大寫。接下來講明對這兩個命令的限定(限定操做的行,字母,單詞)等等。
整篇文章大小寫轉換
打開文件後,無須進入命令行模式。鍵入
:ggguG/:gggUG
解釋一下:ggguG分做三段gg gu(U) G
G=到文件結束
gU1G 從光標所在位置到文章第一個字符,都變爲大寫
map re: reduce 被映射的序列被遞歸映射 i: insert n: normal no: no
這裏只討論官方提供的windows版本的安裝文件對python的支持配置,至於本身編譯vim的狀況,通常都很清楚python如何配置了,不在此討論。官方提供的gvim安裝文件默認是支持python和python3兩種模式的,編譯時帶有該選項,但並無附帶對應的運行庫和運行環境.因此在本地沒有安裝python時直接在vim中執行
:py echo "ABCDE"
會提示沒法加載python27.dll, 針對於這種狀況,請到官方下載 windows 版本的 32位 的python 2.7.x 安裝文件. 使用64位的python沒法正常在gvim中使用。python3.x系列在某些vim相關插件中仍不支持,因此依舊推薦使用2.7.x
在vim的官方FAQ (http://vimdoc.sourceforge.net/cgi-bin/vimfaq2html3.pl)找到的:
格式化全文: gg=G
自動縮進當前行: ==
這個是原文節選:
14.6. How do I format/indent an entire file?
You can format/indent an entire file using the gg=G command, where
gg - Goto the beginning of the file = - apply indentation G - till end of file
For more information, read
:help gg :help = :help G :help 'formatprg' :help C-indenting
幫助文檔:23.4
在 Normal Mode下執行:
ggvGJ
gg 用於跳到行首
v 轉換成 visual 模式
G 跳到最後一行
J 合併行
:set autoread