vim比vi的功能強(qiáng)多了,也好用多了。一直就用vim。
配置vim
注:只對(duì)各個(gè)用戶(hù)在自己的當(dāng)前目錄下的.vimrc修改的話,修改內(nèi)容只對(duì)本用戶(hù)有效,要想全部有效,可以修改/etc/vim/vimrc.
1.apt-get install vim-full
2.設(shè)置/etc/vim/vimrc加上下面語(yǔ)句:
"語(yǔ)法高亮度顯示
syntax on
"去掉有關(guān)vi一致性模式,避免以前版本的一些bug和局限
set nocompatible
"顯示行號(hào)
set number
"檢測(cè)文件的類(lèi)型
filetype on
"記錄歷史的行數(shù)
set history=1000
"背景使用黑色
set background=dark
"vim使用自動(dòng)對(duì)起,也就是把當(dāng)前行的對(duì)起格式應(yīng)用到下一行
set autoindent
"依據(jù)上面的對(duì)起格式,智能的選擇對(duì)起方式,對(duì)于類(lèi)似C語(yǔ)言編
set smartindent
"設(shè)置Windows風(fēng)格的C/C++自動(dòng)縮進(jìn),第一行設(shè)置tab鍵為4個(gè)空格,第二行設(shè)置當(dāng)行之間交錯(cuò)時(shí)使用4個(gè)空格
set tabstop=4
set shiftwidth=4
"設(shè)置匹配模式,類(lèi)似當(dāng)輸入一個(gè)左括號(hào)時(shí)會(huì)匹配相應(yīng)的那個(gè)右括號(hào)
set showmatch
"去除vim的GUI版本中的toolbar
set guioptions-=T
"在編輯過(guò)程中,在右下角顯示光標(biāo)位置的狀態(tài)行
set ruler
"默認(rèn)情況下,尋找匹配是高亮度顯示的,該設(shè)置關(guān)閉高亮顯示
set nohls
"使用此設(shè)置會(huì)快速找到答案,當(dāng)你找要匹配的單詞時(shí),別忘記回車(chē)
set incsearch
"如果沒(méi)有下列行,加上吧
if &term=="xterm"
set t_Co=8
set t_Sb=^[[4%dm
set t_Sf=^[[3%dm
endif
系統(tǒng)的一些設(shè)置(包括終端下的顏色,ls命令,vi等)
注:只對(duì)各個(gè)用戶(hù)在自己的當(dāng)前目錄下的.vimrc修改的話,修改內(nèi)容只對(duì)本用戶(hù)有效,要想全部有效,可以修改/etc/bash.bashrc
使用alias命令修改之
將其中的與顏色有關(guān)的設(shè)置改為:
# enable color support of ls and also add handy aliases
if [ "$TERM" != "dumb" ] && [ -x /usr/bin/dircolors ]; then
eval "`dircolors -b`"
alias ls='ls --color=auto'
alias vi='vim'
alias ll='ls -l --color=auto'
alias dir='ls --color=auto --format=vertical'
alias vdir='ls --color=auto --format=long'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
增加命令:
# some more ls aliases
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'
vi(m)用法
vi 是 Linux/Unix 世界里極為普遍的全屏幕文本編輯器,
幾乎可以說(shuō)任何一臺(tái) Linux/Unix 機(jī)器都會(huì)提供這個(gè)軟件。
vi 有三種狀態(tài),即編輯方式、插入方式和命令方式。
在命令方式下,所有命令都要以:開(kāi)始,所鍵入的字符系統(tǒng)均作命令來(lái)處理,
如:q 代表退出,:w 表示存盤(pán)。
當(dāng)你進(jìn)入vi 時(shí),會(huì)首先進(jìn)入命令方式(同時(shí)也是編輯方式)。
按下I就進(jìn)入插入方式,用戶(hù)輸入的可視字符都添加到文件中,顯示在屏幕上。
按下ESC就可以回到命令狀態(tài)(同時(shí)也是編輯方式)。
編輯方式和命令方式類(lèi)似,都是要輸入命令,
但它的命令不要以:開(kāi)始,它直接接受鍵盤(pán)輸入的單字符或組合字符命令,
例如直接按下u 就表示取消上一次對(duì)文件的修改,相當(dāng)于WINDOWS 下的Undo 操作。
編譯方式下有一些命令是要以/開(kāi)始的,
例如查找字符串就是:/string 則在文件中匹配查找string 字符串。
在編輯模式下按下:就進(jìn)入命令方式。
基本命令解釋?zhuān)?br>
1.光標(biāo)命令
k、j、h、l——上、下、左、右光標(biāo)移動(dòng)命令。
雖然您可以在Linux 中使用鍵盤(pán)右邊的4 個(gè)光標(biāo)鍵,
但是記住這4 個(gè)命令還是非常有用的。這4 個(gè)鍵正是右手在鍵盤(pán)上放置的基本位置。
nG——跳轉(zhuǎn)命令。n 為行數(shù),該命令立即使光標(biāo)跳到指定行。
Ctrl+G——光標(biāo)所在位置的行數(shù)和列數(shù)報(bào)告。
w、b——使光標(biāo)向前或向后跳過(guò)一個(gè)單詞。
2.編輯命令
i、a、r——在光標(biāo)的前、后以及所在處插入字符命令(i=insert、a=append、r=replace)。
cw 、dw—— 改變( 置換)/刪除光標(biāo)所在處的單詞的命令 (c=change 、d=delete)。
x、d$、dd——?jiǎng)h除一個(gè)字符、刪除光標(biāo)所在處到行尾的所有字符以及刪除整行的命令。
3.查找命令
---- /string、?string——從光標(biāo)所在處向后或向前查找相應(yīng)的字符串的命令。
4.拷貝復(fù)制命令
---- yy、p——拷貝一行到剪貼板或取出剪貼板中內(nèi)容的命令。
常用操作:
無(wú)論是開(kāi)啟新檔或修改舊文件,都可以使用vi,所需指令為:
$ vi filemane
如果文件是新的,就會(huì)在熒幕底部看到一個(gè)信息,告訴用戶(hù)正在創(chuàng)建新文件。
如果文件早已存在,vi 則會(huì)顯示文件的首廿四行, 用戶(hù)可再用光標(biāo)(cursor)上下移動(dòng)。
~
~
上面是一個(gè)經(jīng)vi 開(kāi)啟的模擬文件,一行開(kāi)始處的波折號(hào)(~)表示文件的結(jié)尾。
—指令i 在光標(biāo)處插入正文
—指令I(lǐng) 在一行開(kāi)始處插入正文
—指令a 在光標(biāo)後追加正文
—指令A(yù) 在行尾追加正文
—指令o 在光標(biāo)下面新開(kāi)一行
—指令O 在光標(biāo)上面新開(kāi)一行
在插入方式下,不能打入指令,必需先按〈Esc〉鍵,返回命令方式。
假若戶(hù)不知身處何態(tài),也可以按〈Esc〉鍵,不管處?kù)逗螒B(tài),都會(huì)返回命令方式。
在修改文件時(shí),如何存檔及退出指定文件都非常重要。在vi 內(nèi),行使存檔或退出的指令時(shí),
要先按冒號(hào)(:),改變?yōu)槊罘绞剑脩?hù)就可以看見(jiàn)在熒幕左下方,出現(xiàn)冒號(hào)(:),
顯示vi 已經(jīng)改為指 令態(tài),可以進(jìn)行存檔或退出等工作。
:q!放棄任何改動(dòng)而退出vi,也就是強(qiáng)行退出
:w 存檔
:w! 對(duì)于只讀文件強(qiáng)行存檔
:wq 存檔并退出vi
:x 與wq 的工作一樣
:zz 與wq 的工作一樣刪除正文
刪除或修改正文都是利用編輯方式,故此,下面所提及的指令只需在編輯方式下,
直接鍵入指令即行。
—x 刪除光標(biāo)處字符(Character)
—nx 刪除光標(biāo)處後n 個(gè)字符
—nX 刪除光標(biāo)處前n 個(gè)字符
—ndw 刪除光標(biāo)處下n 個(gè)單詞(word)
—dd 刪除整行
—d$或D 刪除由光標(biāo)至該行最末
—u 恢復(fù)前一次所做的刪除
當(dāng)使用vi 修改正文,加減字符時(shí),就會(huì)采用另一組在編輯方式下操作的指令。
— r char 由char 代替光標(biāo)處的字符
—Rtext〈Esc〉由text 代替光標(biāo)處的字符
—cwtext〈Esc〉由text 取代光標(biāo)處的單詞
—Ctext〈Esc〉由text 取代光標(biāo)處至該行結(jié)尾處
—cc 使整行空白,但保留光標(biāo)位置,讓你開(kāi)始打入
—如刪除指令一樣,在指令前打入的數(shù),表示執(zhí)行該指令多少次。
要檢索文件,必需在編輯方式下進(jìn)行。
—/str〈Return〉向前搜尋str 直至文件結(jié)尾處
—?str〈Return〉往後搜尋str 直至文件開(kāi)首處
—n 同一方向上重復(fù)檢索
—N 相反方向上重復(fù)檢索
—vi 纏繞整個(gè)文件,不斷檢索,直至找到與模式相匹配的下一個(gè)出現(xiàn)。
全程替換命令:
:%s/string1/string2/g 在整個(gè)文件中替換“string1”成“string2”。
如果要替換文件中的路徑:
使用命令“:%s#/usr/bin#/bin#g”可以把文件中所有路徑/usr/bin 換成/bin。
也可以使用命令“:%s/\/usr\/bin/\/bin/g”實(shí)現(xiàn),其中“\”是轉(zhuǎn)義字符,表明其后的“/”字符是具有實(shí)際意義的字符,不是分隔符。
同時(shí)編輯2 個(gè)文件,拷貝一個(gè)文件中的文本并粘貼到另一個(gè)文件中:
命令如下:
---- vi file1 file2
---- yy 在文件1 的光標(biāo)處拷貝所在行
---- :n 切換到文件2 (n=next) 或者按ctrl+ww,就在兩個(gè)文件間切換。
---- p 在文件2 的光標(biāo)所在處粘貼所拷貝的行
---- :n 切換回文件1 (Ctrl +WW 也可實(shí)現(xiàn)切換)
將文件中的某一部分修改保存到臨時(shí)文件,
例如僅僅把第20~59 行之間的內(nèi)容存盤(pán)成文件/tmp/1,我們可以鍵入如下命令。
---- vi file
---- :20,59w /tmp/1
如果要在 vi 執(zhí)行期間,轉(zhuǎn)到shell 執(zhí)行,使用驚嘆號(hào)(!)執(zhí)行系統(tǒng)指令,
例如在vi 期間,列出當(dāng)前目錄內(nèi)容,可以鍵入 :
:!ls
另一方面,用戶(hù)可以在主目錄中創(chuàng)建.exrc 環(huán)境文件,用set 打入選項(xiàng),
每次調(diào)用vi 時(shí),就會(huì)讀入.exrc 中的指令與設(shè)置。下面是.exrc 環(huán)境文件的實(shí)例:
set wrapmarging=8
set showmode
set autoindent