Linux系统配置VI或VIM的技巧
Linux系統(tǒng)配置VI或VIM的技巧
作者:IT專家網(wǎng)論壇出處:IT專家網(wǎng)論壇2008-10-28 11:08
配置VI和VIM的顏色顯示,使它能夠高亮度顯示一些特別的單詞,這對編寫程序很有用??
1、VI或VIM的配置文件的路徑
發(fā)現(xiàn)/usr/share/vim/vimrc和/etc/vim/vimrc指向是同一個文件,即vimrc,為vi和vim的配置文件,修改這個文件即可。這個路徑在不同的LINUX版本中可能會不同。
2、配置顏色
配置VI和VIM的顏色顯示,使它能夠高亮度顯示一些特別的單詞,這對編寫程序很有用。后來打開文件發(fā)現(xiàn)里面其實已經(jīng)有一行了,只是用引號注釋掉了,只需將syntax on 所在行前面的引號去掉即可。或者另外獨立添加一行:syntax on 也行,另外編輯/etc/profile 增加一行alias vi="vim"就行了。
3、設(shè)置鼠標
使用VI編輯文本時,如果想修文件中改離光標較遠的位置,這時候想用鼠標定位,可默認情況下,鼠標是不可用的。如果你想使用鼠標,只需另起一行,寫上:set mouse=a 即可
4、設(shè)置自動縮進
默認情況下,VI和VIM都沒有縮進的,每換一行,光標均定位在頂格,如果你想自動對齊,請將 set autoindent所在行前面的引號去掉,或者另外添加一行:set autoindent也可。這與配置顏色類似。這樣的設(shè)置的結(jié)果是按回車后新行與上一行自動對齊。
5、設(shè)置tab的縮進量
如果用python編寫程序,那么行縮進量是一個極其重要的概念,同一個塊的縮進量必須相同。你可能喜歡在行前加空格來表示縮進,但每次必須敲多次空格鍵,如果你喜歡用按TAB鍵來表示縮進,你可能覺得寫的文本或程序不太好看,因為默認情況下,VI和VIM的TAB縮進量比較大(至少六,七個字符)。設(shè)置TAB鍵縮進量的方法:set shiftwidth=3 你也可以選一 個你自己喜歡的縮進量,比如2,或4。
其他方便的技巧
1、vi的基本概念
基本上vi可以分為三種狀態(tài),分別是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能區(qū)分如下:
1) 命令行模式command mode)
控制屏幕光標的移動,字符、字或行的刪除,移動復(fù)制某區(qū)段及進入Insert mode下,或者到 last line mode。
2) 插入模式(Insert mode)
只有在Insert mode下,才可以做文字輸入,按「ESC」鍵可回到命令行模式。
3) 底行模式(last line mode)
將文件保存或退出vi,也可以設(shè)置編輯環(huán)境,如尋找字符串、列出行號??等。
不過一般我們在使用時把vi簡化成兩個模式,就是將底行模式(last line mode)也算入命令行模式command mode)。
2、vi的基本操作
a) 進入vi
在系統(tǒng)提示符號輸入vi及文件名稱后,就進入vi全屏幕編輯畫面:
$ vi myfile
不過有一點要特別注意,就是您進入vi之后,是處于「命令行模式(command mode)」,您要切換到「插入模式(Insert mode)」才能夠輸入文字。初次使用vi的人都會想先用上下左右鍵移動光標,結(jié)果電腦一直嗶嗶叫,把自己氣個半死,所以進入vi后,先不要亂動,轉(zhuǎn)換到「插入模式(Insert mode)」再說吧!
b) 切換至插入模式(Insert mode)編輯文件
在「命令行模式(command mode)」下按一下字母「i」就可以進入「插入模式(Insert mode)」,這時候你就可以開始輸入文字了。
c) Insert 的切換
您目前處于「插入模式(Insert mode)」,您就只能一直輸入文字,如果您發(fā)現(xiàn)輸錯了字!想用光標鍵往回移動,將該字刪除,就要先按一下「ESC」鍵轉(zhuǎn)到「命令行模式(command mode)」再刪除文字。
d) 退出vi及保存文件
在「命令行模式(command mode)」下,按一下「:」冒號鍵進入「Last line mode」,例如:
: w filename (輸入 「w filename」將文章以指定的文件名filename保存)
: wq (輸入「wq」,存盤并退出vi)
: q! (輸入q!, 不存盤強制退出vi)
3、命令行模式(command mode)功能鍵
1). 插入模式
按「i」切換進入插入模式「insert mode」,按“i”進入插入模式后是從光標當前位置開始輸入文件;
按「a」進入插入模式后,是從目前光標所在位置的下一個位置開始輸入文字;
按「o」進入插入模式后,是插入新的一行,從行首開始輸入文字。
2). 從插入模式切換為命令行模式
按「ESC」鍵。
3). 移動光標
vi可以直接用鍵盤上的光標來上下左右移動,但正規(guī)的vi是用小寫英文字母「h」、「j」、「k」、「l」,分別控制光標左、下、上、右移一格。
按「ctrl」+「b」:屏幕往“后”移動一頁。
按「ctrl」+「f」:屏幕往“前”移動一頁。
按「ctrl」+「u」:屏幕往“后”移動半頁。
按「ctrl」+「d」:屏幕往“前”移動半頁。
按數(shù)字「0」:移到文章的開頭。
按「G」:移動到文章的最后。
按「$」:移動到光標所在行的“行尾”。
按「^」:移動到光標所在行的“行首”
按「w」:光標跳到下個字的開頭
按「e」:光標跳到下個字的字尾
按「b」:光標回到上個字的開頭
按「#l」:光標移到該行的第#個位置,如:5l,56l。
4). 刪除文字
「x」:每按一次,刪除光標所在位置的“后面”一個字符。
「#x」:例如,「6x」表示刪除光標所在位置的“后面”6個字符。
「X」:大寫的X,每按一次,刪除光標所在位置的“前面”一個字符。
「#X」:例如,「20X」表示刪除光標所在位置的“前面”20個字符。
「dd」:刪除光標所在行。
「#dd」:從光標所在行開始刪除#行
5). 復(fù)制
「yw」:將光標所在之處到字尾的字符復(fù)制到緩沖區(qū)中。
「#yw」:復(fù)制#個字到緩沖區(qū)
「yy」:復(fù)制光標所在行到緩沖區(qū)。
「#yy」:例如,「6yy」表示拷貝從光標所在的該行“往下數(shù)”6行文字。
「p」:將緩沖區(qū)內(nèi)的字符貼到光標所在位置。注意:所有與“y”有關(guān)的復(fù)制命令都必須與“p”配合才能完成復(fù)制與粘貼功能。
6). 替換
「r」:替換光標所在處的字符。
「R」:替換光標所到之處的字符,直到按下「ESC」鍵為止。
:%s#/usr/bin#/bin#g 將/usr/bin替換為/bin
7). 回復(fù)上一次操作
「u」:如果您誤執(zhí)行一個命令,可以馬上按下「u」,回到上一個操作。按多次“u”可以執(zhí)行多次回復(fù)。
8). 更改
「cw」:更改光標所在處的字到字尾處
「c#w」:例如,「c3w」表示更改3個字
9). 跳至指定的行
「ctrl」+「g」列出光標所在行的行號。
「#G」:例如,「15G」,表示移動光標至文章的第15行行首。
4、Last line mode下命令簡介
在使用「last line mode」之前,請記住先按「ESC」鍵確定您已經(jīng)處于「command mode」下后,再按「:」冒號即可進入「last line mode」。
A) 列出行號
「set nu」:輸入「set nu」后,會在文件中的每一行前面列出行號。
B) 跳到文件中的某一行
「#」:「#」號表示一個數(shù)字,在冒號后輸入一個數(shù)字,再按回車鍵就會跳到該行了,如輸入數(shù)字15,再回車,就會跳到文章的第15行。
C) 查找字符
「/關(guān)鍵字」:先按「/」鍵,再輸入您想尋找的字符,如果第一次找的關(guān)鍵字不是您想要的,可以一直按「n」會往后尋找到您要的關(guān)鍵字為止。
「?關(guān)鍵字」:先按「?」鍵,再輸入您想尋找的字符,如果第一次找的關(guān)鍵字不是您想要的,可以一直按「n」會往前尋找到您要的關(guān)鍵字為止。
D) 保存文件
「w」:在冒號輸入字母「w」就可以將文件保存起來。
E) 離開vi
「q」:按「q」就是退出,如果無法離開vi,可以在「q」后跟一個「!」強制離開vi。
「qw」:一般建議離開時,搭配「w」一起使用,這樣在退出的時候還可以保存文件。
5、vi命令列表
1、下表列出命令模式下的一些鍵的功能:
h
左移光標一個字符
l
右移光標一個字符
k
光標上移一行
j
光標下移一行
^
光標移動至行首
0
數(shù)字“0”,光標移至文章的開頭
G
光標移至文章的最后
$
光標移動至行尾
Ctrl+f
向前翻屏
Ctrl+b
向后翻屏
Ctrl+d
向前翻半屏
Ctrl+u
向后翻半屏
i
在光標位置前插入字符
a
在光標所在位置的后一個字符開始增加
o
插入新的一行,從行首開始輸入
ESC
從輸入狀態(tài)退至命令狀態(tài)
x
刪除光標后面的字符
#x
刪除光標后的#個字符
X
(大寫X),刪除光標前面的字符
#X
刪除光標前面的#個字符
dd
刪除光標所在的行
#dd
刪除從光標所在行數(shù)的#行
yw
復(fù)制光標所在位置的一個字
#yw
復(fù)制光標所在位置的#個字
yy
復(fù)制光標所在位置的一行
#yy
復(fù)制從光標所在行數(shù)的#行
p
粘貼
u
取消操作
cw
更改光標所在位置的一個字
#cw
更改光標所在位置的#個字
2、下表列出行命令模式下的一些指令
w filename
儲存正在編輯的文件為filename
wq filename
儲存正在編輯的文件為filename,并退出vi
q!
放棄所有修改,退出vi
set nu
顯示行號
/或?
查找,在/后輸入要查找的內(nèi)容
n
與/或?一起使用,如果查找的內(nèi)容不是想要找的關(guān)鍵字,按n或向后(與/聯(lián)用)或向前(與?聯(lián)用)繼續(xù)查找,直到找到為止。
對于第一次用vi,有幾點注意要提醒一下:
1、用vi打開文件后,是處于「命令行模式(command mode)」,您要切換到「插入模式(Insert mode)」才能夠輸入文字。切換方法:在「命令行模式(command mode)」下按一下字母「i」就可以進入「插入模式(Insert mode)」,這時候你就可以開始輸入文字了。
2、編輯好后,需從插入模式切換為命令行模式才能對文件進行保存,切換方法:按「ESC」鍵。
3、保存并退出文件:在命令模式下輸入:wq即可!(別忘了wq前面的:)
解決ubuntu中vi不能正常使用方向鍵與退格鍵的問題 ?
問題:
?? ubuntu中vi在編輯狀態(tài)下方向鍵不能用,還有回格鍵不能刪除等我們平時習慣的一些鍵都不能使用。
解決辦法:
?? 可以安裝vim full版本,在full版本下鍵盤正常,安裝好后同樣使用vi命令。
安裝vim:
?ubuntu預(yù)裝的是vim tiny版本,而需要的是vim full版本。執(zhí)行下面的語句安裝vim full版本:
?? $sudo apt-get remove vim-common
?? $sudo apt-get install vim
這樣就行了,vim是一款優(yōu)秀的軟件,可以在運用中體會到。
方案二:
在vi命令行使用命令“:set nocompatible”,就是設(shè)置vi不使用兼容模式。
?ubuntu11.10下的VI命令:? vi 有三種模式,輸入模式,編輯模式,“:”命令模式? vi 進入以后默認是編輯模式? vi 編輯模式默認的快捷鍵 上下左右分別是? J K H L? vi 在編輯模式使用 i 可以進入輸入模式? vi 輸入模式只能輸入英文,默認不能使用上下左右箭頭? vi 輸入模式用Esc可以返回到編輯模式? vi 編輯模式 Shift + ; 可以進入命令模式? vi 命令模式w保存,q退出????????? 1)對所有用戶都有效,解決系統(tǒng)中所用用戶的vi中文亂碼問題
?? sudo gedit /etc/vim/vimrc.tiny
加入如下內(nèi)容:
#該文件的內(nèi)容顯示如下:
" Encoding related
set encoding=UTF-8
set langmenu=zh_CN.UTF-8
language message zh_CN.UTF-8
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
set fileencoding=utf-8
2)只對當前用戶有效的解決方法
? ubuntu默認在當前用戶的家目錄下,沒有.vimrc文件,這個時候可以自己touch一個.vimrc文件,且在其中加入
#該文件的內(nèi)容顯示如下:
" Encoding related
set encoding=UTF-8
set langmenu=zh_CN.UTF-8
language message zh_CN.UTF-8
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
set fileencoding=utf-8
在Vim中設(shè)置tab
在 Vim 中可以很方便的根據(jù)不同的文件類型來設(shè)置使用 tab 制表符或者空格,還可以設(shè)置長度,非常靈活。
首先來看如何設(shè)定 tab 的寬度以及如何確定用 tab 制表符還是空格來表示一個縮進:
??? set tabstop=4
??? set softtabstop=4
??? set shiftwidth=4
??? set noexpandtab / expandtab
其中 tabstop 表示一個 tab 顯示出來是多少個空格的長度,默認 8。
softtabstop 表示在編輯模式的時候按退格鍵的時候退回縮進的長度,當使用 expandtab 時特別有用。
shiftwidth 表示每一級縮進的長度,一般設(shè)置成跟 softtabstop 一樣。
當設(shè)置成 expandtab 時,縮進用空格來表示,noexpandtab 則是用制表符表示一個縮進
Vim配置
很多新人一開始使用vi的時候,總是覺得不順手,什么都很不方便。這就涉及到幾個原因:
??? 1、使用的是vi,不是vim
??? 2、使用vim,但是沒有配置好,不符合使用習慣
??? 3、一開始不習慣無鼠標的的操作和vim的編輯模式
??? 第一點先要解釋一下,很多初學者認為vi和vim是一種東西,只是叫法不同。其實不然,vim實際是vi的升級版本,包含了許多vi沒有的特性(比如多級撤銷、易用性、語法加亮、可視化操作等),而且vim完全兼容vi,因此我是建議大家一開始就直接使用vim吧:D
??? 這里重點說明第二點。很多人抱怨,用vim編程時,語法不會自動高亮顯示,編輯格式不能自動縮進、匹配以及其他一些缺陷,其實這都是VIM的初始配置沒有配置好的緣故。在啟動vim時,當前用戶根目錄下的.vimrc文件會被自動讀取,該文件可以包含一些設(shè)置甚至腳本,所以,一般情況下把.vimrc文件創(chuàng)建在當前用戶的根目錄下比較方便。(PS: vim安裝的時候,其實默認存在一份vimrc的配置example文件,一般情況的路徑是:/usr/local/share/vim/vim70/vimrc_example.vim,里面的注釋非常詳細,而且默認的設(shè)置也符合大部分人的習慣,可以直接copy到自己的用戶目錄下: cp :/usr/local/share/vim/vim70/vimrc_example.vim ~/.vimrc,然后進行個性化修改即可)。下面對經(jīng)常用到的一些設(shè)置做簡單說明,更加詳細的說明以及其他的配置的查詢,可以通過在vim內(nèi)鍵入 :help 或者 :help 配置關(guān)鍵字 來獲取幫助。
" 雙引號開始的行為注釋行,下同
" 去掉討厭的有關(guān)vi一致性模式,避免以前版本的一些bug和局限
set nocompatible
" 顯示行號
set number
" 檢測文件的類型
filetype on
" 記錄歷史的行數(shù)
set history=1000
" 背景使用黑色
set background=dark
" 語法高亮度顯示
syntax on
" 下面兩行在進行編寫代碼時,在格式對起上很有用;
" 第一行,vim使用自動對起,也就是把當前行的對起格式應(yīng)用到下一行;
" 第二行,依據(jù)上面的對起格式,智能的選擇對起方式,對于類似C語言編
" 寫上很有用
set autoindent
set smartindent
" 第一行設(shè)置tab鍵為4個空格,第二行設(shè)置當行之間交錯時使用4個空格
set tabstop=4
set shiftwidth=4
" 設(shè)置匹配模式,類似當輸入一個左括號時會匹配相應(yīng)的那個右括號
set showmatch
" 去除vim的GUI版本中的toolbar
set guioptions-=T
" 當vim進行編輯時,如果命令錯誤,會發(fā)出一個響聲,該設(shè)置去掉響聲
set vb t_vb=
" 在編輯過程中,在右下角顯示光標位置的狀態(tài)行
set ruler
" 默認情況下,尋找匹配是高亮度顯示的,該設(shè)置關(guān)閉高亮顯示
set nohls
" 查詢時非常方便,如要查找book單詞,當輸入到/b時,會自動找到第一
" 個b開頭的單詞,當輸入到/bo時,會自動找到第一個bo開頭的單詞,依
" 次類推,進行查找時,使用此設(shè)置會快速找到答案,當你找要匹配的單詞
" 時,別忘記回車
set incsearch
?????? " 修改配色方案為murphy,方案一般都存在/usr/local/share/vim/vim70/colors目錄
??????? colorscheme murphy
" 修改一個文件后,自動進行備份,備份的文件名為原文件名加“~“后綴
if has(“vms”)
set nobackup
else
set backup
endif
轉(zhuǎn)載于:https://www.cnblogs.com/rockchip/p/3247180.html
總結(jié)
以上是生活随笔為你收集整理的Linux系统配置VI或VIM的技巧的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 博美大概多少钱一只?
- 下一篇: 《梦仙》第十九句是什么