小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

set功能設定

 zale的圖書館 2011-06-24
9 . set功能設定

本單元可說是im的微調(diào)功能,可依您個人的喜好做有限度的調(diào)整。由于im做了相當多的擴充,文內(nèi)主要是述敘im的設定,但elvis沒有的也會標明。但并不打算一網(wǎng)打盡,只說明重要、常用的部份,其它的可以:h option-list來查閱。

在系統(tǒng)上,會有個vimrc_example.vim檔,可以依據(jù)這個檔案來設定一些常要用到的內(nèi)容。


9 . 1該在何處設定呢?

9 . 1 . im的設定檔

可在線上做設定,例如:set ai:set noai,ai是autoindent的縮寫,這樣就可以馬上改變縮格的設定,但離開vim后就又恢復原狀。要永久設定就得設在設定檔中。vim的設定檔在:

~/.exrc ~/.vimrc ~/.gvimrc GUI 版本$VIM/vimrc 系統(tǒng)預設值,最好不去修改$VIM/gvimrc GUI 版本$VIM\_vimrc Windows 版本$VIM\_gvimrc

您要把GUI的設定設在$HOME/.vimrc也是可以的,但分開來可能對以后要修改時會比較找得到地方改。$VIM在哪里呢?/usr/share/vim/usr/local/share/vim這是編譯時就決定的,但可在$HOME/.bash_profie$HOME/.bashrc中另設。Windows版本的$VIM則在C:\Vim這個目錄中,亦可設在autoexec.bat中。

9 . 1 . 2 elvis的設定檔

~/.exrc ~/.elvislib/elvis.rc C:\Program Files\elvis\elvis.rc Windows 版本

如果您的系統(tǒng)上同時有im及elvis,則使用$HOME/.exrc要小心,以免互相影響了設定。好處是可以把共同的設定設在$HOME/.exrc里。提醒您一下!設在設定檔中時set前當然是不必冒號的。

9 . 1 . 3 nvi-m17n的設定檔

~/.exrc ~/.nexrc


9 . 2如何得知目前的設定

:set 或:se 會顯示所有經(jīng)過修改的部份,就是和預設值不一樣的部份。:set all 顯示目前所有設定值內(nèi)容。:scriptnames 顯示各種設定檔的所在路徑及其檔名。:set opt??ion? 顯示option 這設定的目前值。:option 直接線上設定,有些設定需加= 后加上設定值內(nèi)容。:set nooption 取消該設定。:set 后面是可以多重設定的。例如:set autoindent noconfirm autowrite,這樣三種設定就會同時重設。

您當然可以改設定檔來改變設定值。im也可以使用:opt[ion]來直接線上設定,會列出目前的設定,在set這個字上按Enter即可改變設定,或就直接修改其值亦可,改完后按:q就可以了。在簡短說明處按Enter則會叫出該部份的說明檔給您參考,您說方不方便?改好后

:mk[exrc] 則會寫入~/.exrc 檔:mkv[imrc] 則會寫入~/.vimrc 檔

當然您得先搞清楚您目前所在目錄在什么地方,如果您是在家目錄啟動的那就不用擔心了,否則找不到您的新.vimrc可不要寫信來罵我。:-) elvis可就沒這么方便了,得自行修改$HOME/.exrc$HOME/.elvislib/elvis.rc。


9 . 3各種set功能說明

方括號內(nèi)的是縮寫,由于im新增的指令、設定項實在是相當多,建議一開始使用完整的寫法,等熟悉后再來使用縮寫會比較好。

9 . 3 . 0 . 1 autoindent[ai]

自動縮排,也就是說如果本行是從第五個字元開始寫的,您按Enter后游標就會停在次行第五個字元處。預設是不打開的。

9 . 3 . 0 . 2 autowrite[aw]

檔案一有更動就會自動存檔。預設不打開。

9 . 3 . 0 . 3 background[bg] (im才有)

可設成dark或light,這是兩種不同的highlight顏色設定,系統(tǒng)預設的內(nèi)容是在一個synload.vim檔中,詳見$VIMRUNTIME/syntax/synload.vim。不過您要更動顏色的設定,最好是設在$HOME/.vimrc$HOME/.gvimrc中,原始檔預設檔盡量不要去動她。

ㄟ ㄟ ㄟ ,你從沒提過$VIMRUNTIME好不好!其實這是最近版本的im為了不至安裝新版本時把舊版本的一些設定或macro檔干掉,所以$VIMRUNTIME就是$VIM/vimxx,xx就是版本號碼啦!例如您使用的是im 6.1版,那么就是$VIM/vim61,往后安裝6.2版時,會把runtime files裝在$VIM/vim62,這樣就不會把舊的runtime files給蓋掉。

9 . 3 . 0 . 4 backup[bk]

是否要backup file。預設不打開。

9 . 3 . 0 . 5 writebackup[wb] (im才有)

在寫入檔案前先備份一份,和backup的作用不盡相同,請:h backup-table。預設是打開的,所以您如果不要backup,那要關掉的是這個項目,而不是backup。但請先檢查一下您編譯時是不是有編譯進去,請:ver。

9 . 3 . 0 . 6 backupdir[bdir] (im才有)

設定存放backup file 的目錄。預設在所編輯的檔案之所在目錄。

9 . 3 . 0 . 7 binary[bin] (im才有)

設在編輯二進位檔狀態(tài),這是防止存二進位檔時把EOL 也寫進二進位檔,那就會悔不當初,如果是圖檔將會無法再觀看,如果是可執(zhí)行檔就無法執(zhí)行了!因此預設是off。elvis 會自動判斷是否為二進位檔,而且會分成左右兩半,左半部會以16 進位的方式顯示,右半部則是以ASCII 的方式來顯示。

9 . 3 . 0 . 8 browsedir[bsdir] (im才有)

瀏覽檔案的目錄,GUI版本始有。預設是上一次瀏覽的目錄。就是GUI版本功能表上的[File] 234 [Open]會打開的目錄。

9 . 3 . 0 . 9 cindent[cin] (im才有)

寫C 時很好用,indent 比一般敏感,專為C 程式碼而設。預設off。編輯C/C++ code 時會自動打開。

9 . 3 . 0 . 10 cmdheight[ch] (im才有)

狀態(tài)列的行數(shù),預設一行,建議設成兩行。

9 . 3 . 0 . 11 ??compatible[cp] (im才有)

設為和原始vi相容的狀態(tài),vim的擴充功能會被抑制。預設off。

9 . 3 . 0 . 12 confirm[cf] (im才有)

各種確認動作。預設off。

9 . 3 . 0 . 13 directory[dir]

swap 檔存放的目錄。前面單元已有說明。

9 . 3 . 0 . 14 fileformat[ff] (im才有)

這是寫入檔案時置放EOL(end of line) 的形式
dos 是以0x0D0A 來斷行。unix 是以0x0A 來斷行。mac 是以0x0D 來斷行。
預設以各系統(tǒng)平臺而定,在Linux 當然是unix 形式。

9 . 3 . 0 . 15 fileformats[ffs] (im才有)

可指定多個,會依載入的檔案形式來調(diào)整ff。
例如:set ffs=unix,dos ff=unix
則預設為unix格式,但如讀入的是dos格式的檔案,會自動調(diào)整為dos格式,這樣存檔時就會以dos格式存檔(狀態(tài)列會顯示)。。此時如要改成unix格式,可:set ff=unix然后存檔就會轉(zhuǎn)成unix格式,反之亦然。

如果不這樣設,也就是您不管ff或ffs都設成unix,那讀入dos格式的檔案時在每行尾會出現(xiàn)^M這個字元(就是0x0D啦?。┻@時縱使:set ff=unix也來不及了!只好:%s/^M//g來消去這個^M。ㄟ ,還記得怎么替換嗎?就是把^M換成沒有啦!而且^M怎么打出來的還記得吧!翻一翻前面的單元吧!

Hey,你怎么知道是0x0D呀!好吧!告訴您一個密秘,您把游標移到^M那個位置,然后按ga在狀態(tài)列就會顯示10,16,8進位的值。其它的字元也是可以如此顯示。a就是ascii的意思。但這是im的擴充功能,elvis沒有。elvis縱使載入dos格式的檔案,也是會自動把^M隱藏起來。

9 . 3 . 0 . 16 ignorecase[ic]

尋找時不分大小寫,這對中文會造成困擾。預設off。

9 . 3 . 0 . 17 incsearch[is] (im才有)

加強式尋找功能,在鍵入patern 時會立即反應移動至目前鍵入之patern 上。預設off。

9 . 3 . 0 . 18 hlsearch[hls] (im才有)

尋找時,符合字串會反白表示。預設off。如果您是使用vim的預設的vimrc檔的話,可設在F8鍵來切換。

9 . 3 . 0 . 19 textwidth[tw]

是一種word wrap 的功能,從左起算之固定每行的最大字元寬度。超過此寬度就會自動折行,這可是真的折行,也就是說在折行處會插入EOL。預設是0,也就是沒有word wrap 的功能。

9 . 3 . 0 . 20 wrapmargin[wm]

和textwidth 作用相同,只是是從右視窗邊向左算起要幾個字元起折行。預設是0。

9 . 3 . 0 . 21 wrap

這也是折行功能,可是只是螢幕效果的折行,實際上并沒有插入EOL。

9 . 3 . 0 . 22 wrapscan[ws]

這和折行沒有關系,是指尋找時,找至檔尾時,是否要從檔首繼續(xù)找。預設是要。

9 . 3 . 0 . 23 paste (im才有)

這是防止在做剪貼時位置會不正確,前面單元已有說明。

9 . 3 . 0 . 24 ruler[ru] (im才有)

會在狀態(tài)列顯示游標所在處之行列狀態(tài),預設不打開,但建議打開。最右邊之代號的意義如下:
Top 檔案第一行在螢幕可見范圍。Bot 檔案最后一行在螢幕可見范圍。All 檔案首尾皆在一個螢幕范圍內(nèi)。
如非以上三種情形,則會顯示相對百分比位置。

9 . 3 . 0 . 25 statusline[stl] (im才有)

狀態(tài)列顯示的格式,使用預設就可以了,如果您想騷包一下的話,那就請您:h stl。

9 . 3 . 0 . 26 shiftwidth[sw]

指由?移動整行內(nèi)容時,一次移動的字元寬度,一般是使用Tab的值,但可由這個設定來改變。

9 . 3 . 0 . 27 tabstop[ts]

一個Tab鍵寬度。預設是8個字元寬度。最好不要隨便改,以免您寫的東西由其它編輯器來閱讀時造成困擾,為解決這個問題,im另有種softtabstop及modeline的機制,在以下各節(jié)會詳細說明。

9 . 3 . 0 . 28 showcmd[sc]

在狀態(tài)列顯示目前所執(zhí)行的指令,未完成的指令片段亦會顯示出來。

9 . 3 . 0 . 29 showmode[smd]

在狀態(tài)列顯示目前的模式,例如是Insert mode 或是Visual mode。當然平常的normal mode(commond mode)是不顯示的。在載入檔案的同時,會在這個地方顯示檔案名稱及其總行數(shù)、總字元數(shù)。

9 . 3 . 0 . 30 viusalbell[vb] (im才有)

以螢幕閃動代替beep 聲。

9 . 3 . 0 . 31 number[nu]

顯示行號。注意,冒號命令也有:nu這是顯示游標所在行的行號,您嫌多打一個字的話,:#也行。不過如果ruler打開的話,在狀態(tài)列本就會顯示門前游標所在處的行列值。

9 . 3 . 0 . 32 list

這也可以算是一種模式,list mode。就是Tab的地方會以^I顯示,而行尾之EOL會顯示成$。可以讓您清楚的知道Tab在哪里,折行是不是真的。

9 . 3 . 0 . 33 swapfile[swf] (im才有)

是否需swap 至磁碟。如果設為noswf 的話,那將不會有swapfile 產(chǎn)生,通通會載入在記憶體中。預設是要swapfile。

9 . 3 . 0 . 34 fileencoding[fe] (im才有)

首先,先鼓掌一下,啪啪啪……,因為有支援Taiwan,也支援XIM,也就是說可以使用xcin-2.5x 來作輸入,當然您用xcin-2.3x 配合XA 也是可以啦!但前提是您要把multi_byte 編譯進去,這在一開始就講過了。預設是使用ansi。set guifont 及set guifontset 已在一開始講過,在此就不重復了。

9 . 3 . 0 . 35 history[hi]

記錄冒號命令的歷史紀錄檔,就是可以用上下方向鍵叫出來的那鍋。預設是20 筆。


9 . 4關于softtabstop[sts]

幾乎所有的OS及軟體都設定Tab就是8個字元長,這已經(jīng)是個公認值,您硬要去改變它的話恐怕帶來許多不便,但實際上關于程式風格,許多人又認為8個 ??字元太長了,幾個巢狀回圈下來就需折行,反而不方便。因此im體貼您,內(nèi)建了softtabstop的功能,就是由im來代您制造出一個假的Tab,實際上是空白字元組成的Tab。

舉個例子來說明比較清楚。

set softtabstop=4 set shiftwidth=4

這樣會由4個空白字元取代一個Tab,您按Tabvim就跳4格,需注意的是,如果您按了三次Tab鍵,那就是一個實際的Tab加上四個空白字元,可不是12個空白字元喔!是混合TabSpace的。

問題來了!那我要按真正的8字元的Tab時怎么辦?簡單,還記得怎么按特殊字元嗎?Ctrl+v TabCtrl+v I就可以了,那就是如假包換的8字元長之Tab。當然,您按兩次Tab不就得了!:-)

另一個更大的問題也來了!在Un*x系統(tǒng)的有些設定檔,例如Makefile, snedmail的設定檔,他們會認真正的Tab,因此如果您有程式開發(fā)或系統(tǒng)管理的需要的話,最好是不要隨意更動Tab值,也不要使用softtabstop,可以使用im獨特的modeline來控制,請繼續(xù)研讀下一節(jié)。


9 . im的modeline

這個是什么哇?簡單的說,im有能力去解讀所編輯檔案內(nèi)的im控制參數(shù),而這些控制參數(shù)是寫在檔案的注解行里頭的,例如sh script的注解行是以#來開頭的,那im的控制參數(shù)就可以寫在這些注解里頭,im在開這個檔的同時,也會去控制自己的一些行為,當然,包括了上一節(jié)所說的Tab的長短,而shell本身則會忽略這些注解。

例如,現(xiàn)在把一個sh script 檔里頭,在檔案最后一行,設了個:

# vim: ts=2

這樣一來,按個Tab,實際上顯示出來會只有兩個空格,別擔心仍然是正港Tab,不相信的話,可用另一種編輯器打開就知道了。這個好用吧!詳細請進入vim:h modeline

當然,這個功能很方便,但并不是全然沒有限制的,以下有些限制要注意:

1. 控制modeline 本身的設定,不能寫在檔案里頭,vim 會來不及讀他。例如:在sh script 檔案中設定# vim: set modelines=0 這是行不通的。2. 這些設定必須要在檔案的開頭五行,或結尾五行內(nèi)設定,否則vim 會忽略。3. 注解符號后要至少一個空白(sapce 或Tab 皆可)隔開。例如: /* vim:noai:sw=3 ts=4 */ => C 程式碼/* 和vim 間至少要有個空白// vim:ts=2 => C++ # vim:ts=2 => sh script, perl, python, tcl " vim:ts=2 => vim script


9 . 6關于折行

前面已說過set wrap就可以造成螢幕折行,可是卻會把一個英文單字折成兩半,實在很不雅觀。好了,im再體貼您一次,:set linebreak(lbr)就會避免這種問題發(fā)生,會在空白或標點符號的地方來折行,但也仍屬螢幕折行,并不會插入EOL。

在一般的文書排版處理,甚至是寫程式碼,設定系統(tǒng)的設定檔,這些時機,可能自動折行并不很適合(指會插入EOL的),很容易把寫好的內(nèi)容,因為一個不小心就都弄亂了,因為程式一般是一行一行在讀的,把一整行分成兩半,所讀的結果就不一樣了,除非加入程式碼的折行標志,例如一般的倒斜線9 . 1 \或TeX / LaTeX的百分號%。而在排版軟體如TeX / LaTeX,插入EOL的折行,會造成中文字間多出個空白,這在HTML格式的檔案亦同,因此,在做折行的決定時,也請考慮一下其他的『副作用』。


9 . 7我的設定檔

以下是我個人的設定檔,僅供參考用:

9 . 7 . 1 .vimrc范例

" ~/.vimrc by Edward GJ Lee " 這個記號就是vim 的注解,通常情形vim 會忽略。" This code is Public Domain " set backspace=indent,eol,start set autoindent " always set autoindenting on set history=50 " keep 50 lines of command line history set ruler " show the cursor position all the time set showcmd " display incomplete commands set enc=big5 " 檔案編碼設成big5 "使用:update 代替:w,以便在有修改時才會存檔,注意,這和vi 不相容。map

9 . 7 . 2 .gvimrc范例

" ~/.gvimrc by Edward GJ Lee " This code is Public Domain " set mousehide " 當輸入文字時隱藏mouse map

9 . 7 . 3 .vim目錄范例

其實,一些設定檔除了家目錄下的.vimrc.gvimrc外,可以置放于家目錄下的一個子目錄.vim,其目錄結構可以仿$VIMRUNTIME這個系統(tǒng)上的結構。例如,我的.vim結構如下:

edt1023:~$ tree .vim .vim |-- filetype.vim |-- plugin | |-- format.vim | `-- tex.vim |-- syntax | |-- lily.vim | `-- svg. vim `-- view `-- ~=+bg5.txt= 3 directories, 6 files

其中,filetype.vim會在系統(tǒng)的filetype.vim載入后蓋過去,也就是家目錄的會先優(yōu)使用。format.vimtex.vim是進入vim馬上會載入的im script,主要用于中文重排及TeX / LaTeX排版系統(tǒng)編輯時的方便指令、按鍵。lily.vim則是GNU LilyPond這個樂譜排版系統(tǒng)檔案的語法顏色定義檔,svg.vim則是SVG向量圖檔的語法顏色定檔加強版。view那個子目錄下的又是什么呢?這是下:mkview指令時所存的一些狀態(tài)檔,在:loadview要參考到,請參考第11章,第11.1.3小節(jié),頁[*],這個檔是個隱藏檔。


    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多