vim常用命令详解
1.獲取幫助
?WHAT?PREPEND????EXAMPLE?~
??????Normal?mode?command??????(nothing)???:help?x
??????Visual?mode?command??v_???:help?v_u
??????Insert?mode?command??i_???:help?i_<Esc>
??????Command-line?command??:???:help?:quit
??????Command-line?editing??c_???:help?c_<Del>
??????Vim?command?argument??-???:help?-r
??????Option??'???:help?'textwidth'
??????查看錯誤信息?(nothing)??:help?E37
?
2.命令
編輯命令:?????
a?添加字符
A?從行尾添加字符
?????????????i(Insert)???????插入
I?從行第一個字符開始插入
x(效仿打字機)?刪除一個字符,例如3x刪除光標處向右的三個字符
d(delete)?刪除
dd?刪除一整行,3dd從當前行開始向下刪除三行文本
dw刪除當前字符到單詞尾包括空格的所有字符
yy命令復制當前整行的內容到vi緩沖區
yw復制當前光標所在位置到單詞尾字符的內容到vi緩存區,相當于復制一個單詞
y$復制光標所在位置到行尾內容到緩存區
y^復制光標所在位置到行首內容到緩存區
#yy例如:5yy就是復制5行
#yw例如:2yw就是復制兩個單詞
如果要復制第m行到第n行之間的內容,可以在末行模式中輸入m,ny例如:3,5y復制第三行到第五行內容到緩存區。
?
J?刪除回行符(合并兩行)?合行后中間加一個空格
gJ?刪除回行符,合行后首尾空格不去除
u(undo)?撤銷上一步操作
U(undo)?撤銷一整行操作(此操作算為一次操作,可用u撤銷)
Ctrl+R(redo)?從做撤銷的操作
i?在當前位置插入
o?在光標的下面插入新行
O?在光標的上面插入新行
r?替換光標下的字符,加上計數器表示連續替換多個字符為一個字符
R?替換整行字符
s刪除光標所在的字符,用你輸入的字符取代它
?
至上而下的查找
/?要查找的字符竄,其中/代表從光標所在位置起開始查找,例如:/?work
至下而上的查找
?要查找的字符竄?例如:??work
替換
:s/old/new用new替換行中首次出現的old
:?s/old/new/g?用new替換行中所有出現的old
:#,#?s/old/new/g用new替換從第#行到第#行中出現的old
:%?s/old/new/g用new替換整篇中出現的old
如果替換的范圍較大時,在所有的命令尾加一個c命令,強制每個替換需要用戶進行確認,例如:s/old/new/c?或s/old/new/gc
?
.?重復上一次更改
p?粘貼默認寄存器中的內容,可用計數器
y?復制選中內容到默認寄存器
~?切換當前字母大小寫
g~?切換字母大小寫
gU?將字母切換成大寫
gu?將字母切換成小寫
g~~?g~g~?切換整行字母大小寫
gUU?gUgU
guu?gugu
>?在visual模式下將選中的內容右移,前面填充空格
<?在visual模式下將選中的內容左移,前面的空格刪除
:{range}read?patch?在當前行的下面插入文件patch中的內容,如果指定了range?則插入到range中最后的一行下面,這里的range可以用特殊的行號0
:{range}read?!{command}?將命令的輸出插入到文件中
?
gq?格式化所選文本
:[range]m[ove]?{address}?把選中的文本移動到address下面
:[range]co[py]?{address}?把選中的文本復制到address下面
等價的:
x=dl
X=dh
D=d$
C=c$
s=cl
S=cc
?
位移命令:
??在普通模式下?hjkl?代表?左下上右,和上下左右四個箭頭是一樣的!
w?往后跳一個單詞,光標停在第一個字母上
b?往前挑一個單詞,光標停在第一個字母上
e?往后跳一個單詞,光標停在最后一個字母上
ge?往前跳一個單詞,光標停在最后一個字母上
$?跳到行尾,可用計數器向下跳多行
?
^?跳到行首不算上空白,加上計數器沒有效果
f?向后查找字符,用計數器表示查找到第幾個匹配字符
F?向前查找字符,用計數器表示查找到第幾個匹配字符
t
T
;?跳到下一個匹配的字符
,?跳到上一個匹配的字符
%?匹配括號?前面加數字表示跳轉到文件的百分比
G???前面加數字跳轉到明確的行,不加數字表示跳轉到文件的最后一行
gg?跳到文件的第一行
H(Home)?跳到屏幕的最上方一行
M(Middle)?跳到屏幕的中間一行
L(Last)?跳到屏幕的最下面一行,和end是一樣的
CTRL-U(up)?將屏幕向上滾動半個屏幕的文本
CTRL-D(down)?將屏幕向下滾動半個屏幕的文本
CTRL-E?將文字向上提一行
CTRL-Y?將文字向下拉一行
CTRL-F?將屏幕向下滾動一屏
CTRL-B???????????將屏幕向上滾動一屏
CTRL-]???跳轉到標簽內部
CTRL-T???跳轉到父標簽
??CTRL-O?????跳轉到更老的jump點
??CTRL-I?????跳轉到更新的jump點,與<TAB>功能相同
?
`?跳轉到某標簽的光標位置
'?跳轉到某標簽的行首
文本對象:(很像計數器+位移命令)
a?????包括前后空格
???????i????????????????不包括前后空格
w?單詞
s?句子
p?段落
其他命令:
?
------------------多文件-------------------------
vim?one.c?two.c?three.c???通過VIM同時編輯三個文件
:next??編輯下一個文件??可以用計數器?:2next
:wnext??保存并編輯下一個文件
:args??顯示打開VIM時編輯的文件列表
:previous??編輯上一個文件?可以用計數器
:wprevious??保存并編輯上一個文件
:first??編輯第一個文件(沒有w版本)
:last??編輯最后一個文件(沒有w版本)
:args?*.txt??從新編輯文件列表,未保存文件將提示,可以用通配符,可以用強制符
?
-------------------多窗口----------------------------------
vim?-o?one.txt?two.txt?水平多個窗口打開多個文件
vim?-O?one.txt?two.txt???垂直多個窗口打開多個文件
:all?為列表中的文件各開一個窗口(可vertical)
:split?上下分割當前窗口,在上面打開新窗口
:vsplit?左右分割窗體,在左邊打開新窗口
:split?two.c?在新窗口編輯文件
:3split?alpha.c?設定新窗口的高度
:new?創建新窗口創建新文件在當前窗口上面
:vnew?創建新窗口創建新文件在當前窗口左面
:vertical?new?等同于vnew
:vertical?加在任何分割窗口的命令前面,使其垂直分割
CTRL-W?w?窗口切換
CTRL-W?CTRL-W?和CTRL+W?w一樣
:close?關閉窗口
:only?關閉其他所有窗口
CTRL-W?+?增大窗口,可以用計數器
CTRL-W?-?減小窗口,可以用計數器
15CTRL-W?_?指定當前窗口高度為15
CTRL-W?_?最大化當前窗口
CTRL-W?h?move?to?the?window?on?the?left
CTRL-W?j?move?to?the?window?below
CTRL-W?k?move?to?the?window?above
CTRL-W?l?move?to?the?window?on?the?right
CTRL-W?t?move?to?the?TOP?window
CTRL-W?b?move?to?the?BOTTOM?window
CTRL-W?H?move?window?to?the?far?left
CTRL-W?J?move?window?to?the?bottom
CTRL-W?K?move?window?to?the?top
CTRL-W?L?move?window?to?the?far?right
:qall?退出所有窗口
:wall?存儲所有文件
:wqall?存儲并退出所有文件
:qall!?放棄存儲退出所有文件
?
------------------------文件對比--------------------------
vimdiff?a.c?b.c?對比兩個文件的差別
zc?關閉折疊
zo?打開折疊
-----------------------tab欄------------------------------
gT?反向的gT
:tab?split?通過一個新tab打開當前文件
:tab?help
:tabonly?除了當前的tab其它的都關閉
-----------------------GUI選項----------------------------
:set?guioptions?設置GUI的選項?T代表toolsbar?l代表左滾動條
:behave?xterm?把鼠標設置成Xterm模式
:behave?mswin?把鼠標設置成mswin模式
'mouse'?in?which?mode?the?mouse?is?used?by?Vim
'mousemodel'?what?effect?a?mouse?click?has
'mousetime'?time?between?clicks?for?a?double-click
'mousehide'?hide?the?mouse?while?typing
'selectmode'?whether?the?mouse?starts?Visual?or?Select?mode
:setselectmode+=mouse?通過鼠標選擇文本進入選擇模式,選擇模式下輸入字符會使用新字符替換之前選中的字符。
-------------------------其它的---------------------------
:{range}write>>logfile?將當前內容追加到指定文件中
:{range}write?保存,后面加路徑為另存為
:{range}write?{command}?將當前文件保存到command中表示把當前文件作為被調用命令的參數?如?:write?!wc?返回當前文件的字符數
:w?:write的縮寫
:edit(e)?打開,編輯
ZZ?????????保存并退出
zz???將光標所在行移至窗口中間
:q???退出
vim?-R?file?用只讀模式打開file?unix中view?file等效,通過w!可以強制存盤
vim?-M?file?用只讀模式打開file?通過?:set?modifiable?:set?write?可以去除這種保護
vim?-r?file?用swp文件恢復當前打開文件,恢復一個還沒有命名保存的文件時用?vim?-r?""?,其中file可以是被恢復的原文件,也可以是用于恢復的交換文件(VIM會根據交換文件自動找到原文件)
vim?-r?列出當前可用的所有交換文件,然后選擇用哪個恢復
:recover?用交換文件恢復當前文件
:set?shortmess?選擇關閉信息提示功能
:saveas?move.s?將當前文件另存為move.s
:file?move.c?將當前文件重命名為move.c
{command}!???強制符
!{motion}{program}?執行外部程序?輸入完!{motion}部分后命令會自動跳轉到命令行部分,會通過motion部分的內用調用program然后用返回結果覆蓋調motion選擇的部分?例如:!5Gsort<Enter>
!!?在當前行執行程序?相當于?:.!
:jumps?列出跳轉記錄
:marks?列出所有標簽
:reg?查看寄存器內的內容
<ESC>?????取消命令
CTRL-G?????顯示行數等信息
m?創建標簽,用a-z?是局域標簽,A-Z是全局標簽
v?進入visual模式
V?進入visual模式,以行為對象
CTRL-V?進入visual模式,以矩形為對象
o?在以矩形為單位的visual模式時?光標對角切換
O?在以矩形為單位的visual模式時?光標平角切換
"{a-Z,+,*等}?選擇寄存器復制\剪切\粘貼?大寫字母表示追加
'"?跳到上次退出此文件時的位置
'.?跳到最后編輯此文件的位置
:TOhtml?把當前文件轉化成HTML格式
:source?$VIMRUNTIME/syntax/2html.vim??把2html.vim轉化成HTML顯示在屏幕上
g?Ctrl-G?統計字數,可以在visual模式下選擇要統計的字符
---------------------------------------------------------------
?
3.配置與設置
在布爾型參數前加no表示關閉選項
配置項支持-=?和?+=
拷貝默認的配置文件:??????:!cp?-i?$VIMRUNTIME/vimrc_example.vim?~/.vimrc
VIM的默認安裝路徑:/usr/share/vim
VIM的默認配置文件路徑:?~/.vim/
VIM的默認插件文件路徑:?~/.vim/plugin/
VIM的默認文件類型配置文件路徑:?~/.vim/ftplugin/
VIM的默認文檔安裝路徑:?~/.vim/doc
文件類型配置文件多文件的配置方式:
ftplugin/<filetype>.vim
ftplugin/<filetype>_<name>.vim
ftplugin/<filetype>/<name>.vim
或
mkdir?$VIM/vimfiles/ftplugin/fortran
$VIM/vimfiles/ftplugin/fortran/too.vim
??高亮字體設置的路徑:$VIMRUNTIME/syntax
配色方案的路徑:$VIMRUNTIME/colors???~/.vim/colors
生成幫助文件的tags:???????????????:helptags?~/.vim/doc
查看本地添加的所有幫助文件:??:help?local-additions
打開配置文件?:edit?$MYVIMRC
查看版本和一些文件配置信息????????:version
把所有選項攝制成默認??????????????:set?all&
查看所有和默認不一樣的設置????????:set
打開設置窗口??:options
配置命令:
在所有配置項后面添加&表示設置為默認值
:set?showmode???????????????????????顯示當前的模式
:set?compatible????????????????????????查看當前是否為兼容模式
:set?number???????????????????????顯示行號
:set?ruler???????????????????????在屏幕右下角顯示光標位置
:set?ignorecase????????????????????????搜索乎略大小寫
????????:set?hlsearch???????????????????????設置搜索結果高亮
:nohlsearch???????關閉當前搜索結果的高亮
:set?incsearch???????????????????????(incomplete)在輸入單詞的同時顯示搜索結果
:set?wrapscan???????????????????????搜索到文件底部的時候從文件的開頭繼續搜索反之亦然
:set?wrap???????是否自動換行
:set?whichwrap???????設置那些命令可以跨行b是backspace?s是Space?具體查看'whichwrap'
:set?sidescroll???????設置左右自動滾動的觸發字符數
:set?scrolloff???????設置上下自動滾動的觸發行數
:set?compatible????????????????????????是否與vi兼容
:set?backspace=indent,eol,start????????設置在Insert模式下backspace鍵可以刪除?行前的自動縮進,回行,和進入插入模式時光標之前的字符
:set?autoindent????????????????????????自動縮進(在Insert中回車或者在正常模式下o)
:set?backup???????覆蓋一個文件時備份它
:set?history???????設置命令和搜索的歷史記錄數量
:set?showcmd???????在右下角顯示按鍵命令
:set?list???????制表符高亮
:set?listchars=tab:>-,trail:-???????設置制表符的替換字符串
:set?iskeyword???????設置關鍵字的組成字母@表示a-Z
:set?cmdheight???????設置命令區高度
:map?Q?gq???????設置映射
:map?<F5>?i{<Esc>ea}<Esc>???????映射F5的功能為給一個單詞加{}
:set?shiftwidth???????設置左右移動的距離
:set?joinspaces???????設置合行后的空格數
:set?textwidth???????設置文本的寬度
:set?updatetime???????設置多長時間沒有編輯文件就自動存盤,毫秒為單位
:set?updatecount???????設置輸入多少字符后自動存盤
:set?directory???????設置查看在哪里存儲交換文件
:set?autowrite???????自動存盤,此存盤是在必要時刻自動存儲不像word那樣隔幾分鐘存一次
?
配置文件中的特殊用法:
autocmd?自動執行命令
autocmd?FileType?text?setlocal?textwidth=78?設置?文本文件?文本寬度為78
手動設置文件的高亮配置文件:
在文件開頭或者結尾寫入??#?vim:?syntax=make
在VIM中執行shell的時候可以配置shell備置列表如下:
'shell'?specifies?the?program?that?Vim?uses?to?execute?external?programs.
'shellcmdflag'?argument?to?pass?a?command?to?the?shell
'shellquote'?quote?to?be?used?around?the?command
'shellxquote'?quote?to?be?used?around?the?command?and?redirection
'shelltype'?kind?of?shell?(only?for?the?Amiga)
'shellslash'?use?forward?slashes?in?the?command?(only?for?MS-Windows?and?alikes)
'shellredir'?string?used?to?write?the?command?output?into?a?file
4.搜索
搜索支持正則表達式
/?向后搜索
??向前所搜
n?下一個匹配項
N?上一個匹配項
*?從上向下搜索單詞
#?從下向上搜索單詞
搜索單詞:?/\<the\>??這樣指定了單詞的開始和結尾
5.常用套路技巧:
套路:
x?delete?character?under?the?cursor?(short?for?"dl")
X?delete?character?before?the?cursor?(short?for?"dh")
D?delete?from?cursor?to?end?of?line?(short?for?"d$")
dw?delete?from?cursor?to?next?start?of?word
db?delete?from?cursor?to?previous?start?of?word
diw?delete?word?under?the?cursor?(excluding?white?space)
daw?delete?word?under?the?cursor?(including?white?space)
dG?delete?until?the?end?of?the?file
dgg?delete?until?the?start?of?the?file
技巧:
'*?是選區寄存器(用鼠標中鍵)??'+?是粘貼寄存器(一般是菜單里的復制粘貼選項)
Insert模式和Replace模式可以用Insert鍵切換
將Doe,John?替換成?John?Doe?用如下方法:
:%s/\([^,]*\),\(.*\)/\2?\1/????????其中\1?表示正則表達式中第一個匹配部分,整句的匹配部分用?\0表示
?
反序排列的方法:
首先到要反序的第一行,用mt標注當前位置,然后到要替換的反序的最后一行,輸入命令:'t+1,.g/^/m?'t?可以用.范圍(global默認是%)然后編輯反射這樣就可以挑出想要的內容,還可以不確定范圍用0代替?'t將對整個文件進行反序
挑選文本的方法:
:map?<F4>?:.g/^/co?'p<enter>?:normal?<c-o><enter>?需要首先用mp定義p的位置
6.配色方案:
命令:
:syntax?on???????打開語法高亮
:syntax?clear???????清楚當前的語法高亮
:syntax?off???????關閉語法高亮
:syntax?manual???????將高亮模式設置為手動
:set?syntax=ON???????設置以上選項后,用這個命令開啟語法高亮
:filetype?on???????打開文件類型檢測
:set?filetype???????設置當前文件類型
:plugin?on???????使用文件類型插件
:indent?on???????打開文件類型自動縮進
????????:set?background???????手動配置背景色(VIM一般會自動推斷終端的背景色)?此命令必須放置在?:syntax?enable?前?否則不起作用
:syntax?reset???????vim重新設置默認顏色
:runtime?syntax/colortest.vim???????查看配色方案的實例
:colorscheme???????選擇配色方案
:colorscheme?mine???????一直使用自己的配色方案
CTRL-L???????重繪VIM的屏幕
配色方案文件中的關鍵字及作用:
配色方案的路徑:$VIMRUNTIME/colors???~/.vim/colors
term?attributes?in?a?B&W?terminal
cterm?attributes?in?a?color?terminal
ctermfg?foreground?color?in?a?color?terminal
ctermbg?background?color?in?a?color?terminal
gui?attributes?in?the?GUI
guifg?foreground?color?in?the?GUI
guibg?background?color?in?the?GUI
可以這樣設置:highlight?Comment?ctermfg=green?guifg=green
?
7.命令記錄與回放
q{a-z}?用于開始記錄宏,放在寄存器里面的命令可以當成文本粘貼出來,大寫字母表示追加
q?結束宏
@{a-z}?執行宏
@@?用上一次執行宏的寄存器執行宏
8.搜索替換
:[range]substitute/from/to/[flags]?搜索替換的格式?substitute縮寫為s,=和+也可以用于分隔符
[range]?默認為當前行
[flags]?默認指替換第一個
g(gloabl)?替換范圍內全局
p(print)?顯示替換的最后一行
e?告訴VIM未找到匹配時不要報錯
c(confirm)?每次替換要求用戶確認
y?Yes;?make?this?change.
n?No;?skip?this?match.
a?All;?make?this?change?and?all?remaining?ones?without?further?confirmation.
q?Quit;?don't?make?any?more?changes.
l?Last;?make?this?change?and?then?quit.
CTRL-E?Scroll?the?text?one?line?up.
CTRL-Y?Scroll?the?text?one?line?down.
9.全局命令
:[range]global/{pattern}/{command}?全局命令的一般形式,其中global可以縮寫成g,command必須是:命令,正常模式下的命令可以通過?:normal實現
10.命令范圍
任何命令都可以有一個范圍
{number}?number是行號,指定一行
{number},{number}?指定多行,包含指定的兩行,這里的number可以是一個搜索模式,??abc???表示向上搜索abc?/abc/?表示向下搜索abc?,當開始行大于結束行的時候它會問你是否交換兩個參數,可以在任何number后面添加偏移量,例如:?.+1,$-3??或者??a?+1,/b/-1等等,還可以在visual模式下選擇范圍當按下:時會出現?:'<,'>?這時的作用范圍即是選區開始的字符到選區結束的字符,要注意的是即使是CTRL-V進入的塊選區也是以行為基本單位
.?光標的當前行
1?第一行
$?最后一行
%?相當于?1,$
'a-z'?number還可以用mark表示
`<?上一個選區開始的位置
`>?上一個選區結束的位置
'<?上一個選區開始的行
'>?上一個選區結束的行
5:?就是在:前面加計數器將會在命令欄打開?:.,.+4?可以用任意的計數器
*.需要注意的:
1.?d2e?和?d2w?的區別
2.?cw?和?ce?的結果一樣,都是c2e的結果
3.?^命令加上計數器沒有效果
4.?Y和yy?的結果一樣,都是yy的結果,如果想用Y的效果只能y$了
??5.?vnoremap?_g?y:exe?"grep?/"?.?escape(@",?'\\/')?.?"/?*.c?*.h"<CR>?這句沒看懂??????05.2*?The?example?vimrc?file?explained
6.?autocmd?BufReadPost?*
???\?if?line("'\"")?>?1?&&?line("'\"")?<=?line("$")?|
???\???exe?"normal!?g`\""?|
???\?endif
沒看懂?05.2*?The?example?vimrc?file?explained
7.?關于自定義高亮?查看?mysyntaxfile?????和??syntax
8.?關于自定義文件類型?查看????new-filetype|
http://www.pc6.com/infoview/Article_50413_all.html
"?設定默認解碼
set?fenc=utf-8
set?fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
"?不要使用vi的鍵盤模式,而是vim自己的
set?nocompatible
"?history文件中需要記錄的行數
set?history=100
"?在處理未保存或只讀文件的時候,彈出確認
set?confirm
"?與windows共享剪貼板
set?clipboard+=unnamed
"?偵測文件類型
filetype?on
"?載入文件類型插件
filetype?plugin?on
"?為特定文件類型載入相關縮進文件
filetype?indent?on
"?保存全局變量
set?viminfo+=!
"?帶有如下符號的單詞不要被換行分割
set?iskeyword+=_,$,@,%,#,-
"?語法高亮
syntax?on
"?高亮字符,讓其不受100列限制
:highlight?OverLength?ctermbg=red?ctermfg=white?guibg=red?guifg=white
:match?OverLength?'\%101v.*'
"?狀態行顏色
highlight?StatusLine?guifg=SlateBlue?guibg=Yellow
highlight?StatusLineNC?guifg=Gray?guibg=White
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"?文件設置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"?不要備份文件(根據自己需要取舍)
set?nobackup
"?不要生成swap文件,當buffer被丟棄的時候隱藏它
setlocal?noswapfile
set?bufhidden=hide
"?字符間插入的像素行數目
set?linespace=0
"?增強模式中的命令行自動完成操作
set?wildmenu
"?在狀態行上顯示光標所在位置的行號和列號
set?ruler
set?rulerformat=%20(%2*%<%f%=\?%m%r\?%3l\?%c\?%p%%%)
"?命令行(在狀態行下)的高度,默認為1,這里是2
set?cmdheight=2
"?使回格鍵(backspace)正常處理indent,?eol,?start等
set?backspace=2
"?允許backspace和光標鍵跨越行邊界
set?whichwrap+=<,>,h,l
"?可以在buffer的任何地方使用鼠標(類似office中在工作區雙擊鼠標定位)
set?mouse=a
set?selection=exclusive
set?selectmode=mouse,key
"?啟動的時候不顯示那個援助索馬里兒童的提示
set?shortmess=atI
"?通過使用:?commands命令,告訴我們文件的哪一行被改變過
set?report=0
"?不讓vim發出討厭的滴滴聲
set?noerrorbells
"?在被分割的窗口間顯示空白,便于閱讀
set?fillchars=vert:\?,stl:\?,stlnc:\
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"?搜索和匹配
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"?高亮顯示匹配的括號
set?showmatch
"?匹配括號高亮的時間(單位是十分之一秒)
set?matchtime=5
"?在搜索的時候忽略大小寫
set?ignorecase
"?不要高亮被搜索的句子(phrases)
set?nohlsearch
"?在搜索時,輸入的詞句的逐字符高亮(類似firefox的搜索)
set?incsearch
"?輸入:set?list命令是應該顯示些啥?
set?listchars=tab:\|\?,trail:.,extends:>,precedes:<,eol:$
"?光標移動到buffer的頂部和底部時保持3行距離
set?scrolloff=3
"?不要閃爍
set?novisualbell
"?我的狀態行顯示的內容(包括文件類型和解碼)
set?statusline=%F%m%r%h%w\?[FORMAT=%{&ff}]\?[TYPE=%Y]\?[POS=%l,%v][%p%%]\?%{strftime(\"%d/%m/%y\?-\?%H:%M\")}
"?總是顯示狀態行
set?laststatus=2
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"?文本格式和排版
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"?自動格式化
set?formatoptions=tcrqn
"?繼承前一行的縮進方式,特別適用于多行注釋
set?autoindent
"?為C程序提供自動縮進
set?smartindent
"?使用C樣式的縮進
set?cindent
"?制表符為4
set?tabstop=4
"?統一縮進為4
set?softtabstop=4
set?shiftwidth=4
"?不要用空格代替制表符
set?noexpandtab
"?不要換行
set?nowrap
"?在行和段開始處使用制表符
set?smarttab
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"?CTags的設定
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"?按照名稱排序
let?Tlist_Sort_Type?=?"name"
"?在右側顯示窗口
let?Tlist_Use_Right_Window?=?1
"?壓縮方式
let?Tlist_Compart_Format?=?1
"?如果只有一個buffer,kill窗口也kill掉buffer
let?Tlist_Exist_OnlyWindow?=?1
"?不要關閉其他文件的tags
let?Tlist_File_Fold_Auto_Close?=?0
"?不要顯示折疊樹
let?Tlist_Enable_Fold_Column?=?0
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"?Autocommands
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"?只在下列文件類型被偵測到的時候顯示行號,普通文本文件不顯示
if?has("autocmd")
?autocmd?FileType?xml,html,c,cs,java,perl,shell,bash,cpp,python,vim,php,ruby?set?number
?autocmd?FileType?xml,html?vmap?<C-o>?<ESC>'<i<!--<ESC>o<ESC>'>o-->
?autocmd?FileType?java,c,cpp,cs?vmap?<C-o>?<ESC>'<o
?autocmd?FileType?html,text,php,vim,c,java,xml,bash,shell,perl,python?setlocal?textwidth=100
?autocmd?Filetype?html,xml,xsl?source?$VIMRUNTIME/plugin/closetag.vim
?autocmd?BufReadPost?*
?\?if?line("'\"")?>?0?&&?line("'\"")?<=?line("$")?|
?\??exe?"normal?g`\""?|
?\?endif
endif?"?has("autocmd")
"?F5編譯和運行C程序,F6編譯和運行C++程序
"?請注意,下述代碼在windows下使用會報錯
"?需要去掉./這兩個字符
"?C的編譯和運行
map?<F5>?:call?CompileRunGcc()<CR>
func!?CompileRunGcc()
exec?"w"
exec?"!gcc?%?-o?%<"
exec?"!?./%<"
endfunc
"?C++的編譯和運行
map?<F6>?:call?CompileRunGpp()<CR>
func!?CompileRunGpp()
exec?"w"
exec?"!g++?%?-o?%<"
exec?"!?./%<"
endfunc
"?能夠漂亮地顯示.NFO文件
set?encoding=utf-8
function!?SetFileEncodings(encodings)
?let?b:myfileencodingsbak=&fileencodings
?let?&fileencodings=a:encodings
endfunction
function!?RestoreFileEncodings()
?let?&fileencodings=b:myfileencodingsbak
?unlet?b:myfileencodingsbak
endfunction
au?BufReadPre?*.nfo?call?SetFileEncodings('cp437')|set?ambiwidth=single
au?BufReadPost?*.nfo?call?RestoreFileEncodings()
"?高亮顯示普通txt文件(需要txt.vim腳本)
au?BufRead,BufNewFile?*??setfiletype?txt
"?用空格鍵來開關折疊
set?foldenable
set?foldmethod=manual
nnoremap?<space>?@=((foldclosed(line('.'))?<?0)???'zc'?:?'zo')<CR>
"?minibufexpl插件的一般設置
let?g:miniBufExplMapWindowNavVim?=?1
let?g:miniBufExplMapWindowNavArrows?=?1
let?g:miniBufExplMapCTabSwitchBufs?=?1
let?g:miniBufExplModSelTarget?=?1
--------------------------------------------------------------------------------
.gvimrc
"?Buffer的位置和大小
winpos?300?100
set?lines=28
set?columns=90
"?因為設定為不換行,所以要顯示底部滾動條,不顯示左右滾動條和工具欄
set?guioptions+=b
set?guioptions-=r
set?guioptions-=l
set?guioptions-=T
"?設定顏色方案和字體
"?英文用Consolas顯示,中文用微軟雅黑
colorscheme?desert
set?guifont=Consolas\?11.5
set?guifontset=Microsoft\?YaHei\?11
"?用淺色高亮當前行
autocmd?InsertLeave?*?se?nocul
autocmd?InsertEnter?*?se?cul
http://www.ax.net.cn/?action=show&id=251
在命令模式下輸入
:set?nu
或者
:set?number
都可以為vi設置行號,如果要取消的話,則輸入
:set?nonu
行號的設置是vi的環境設置,不會影響文本的內容。
http://zhidao.baidu.com/question/188146901.html&__bd_tkn__=
6abd4535212f8b25470aa16db7a564f6940ad7e68078338d51fed8133
ea5c69d362ad36bb4bcda3b39bb3949f6bbe47087ac3af56e60b1f4e7eb6015
7954f5339961a0f85f0f03de01252774a633c90749059d057e2ecf84d338367806
2d4128bf670b4738b2adab950789accbdc8d0cc93023f448ac
Linux下VI編輯器如果出現不能保存中文的問題你可以在當前用戶下,建.vimrc文件內容如下:
set?nocompatible?"Use?Vim?defaults?(much?better!)set?bs=indent,eol,start"?Allow?backspacing?over?everything?in?insert?mod
http://server.zol.com.cn/127/1270793.html
?
?
?
?
?
?
轉載于:https://blog.51cto.com/mcmvp/986342
總結
- 上一篇: 本地化中文示例代码需求调查
- 下一篇: Activity两个启动方法的区别