Linux vi入門必備

  

1、vi、vim介紹
 
文本編輯器分爲:
(1)基於圖形界面,如gedit、geany等;
(2)基於命令行,如nano、vi、joe等;
每一個命令行界面的文本編輯器都有各自不一樣的快捷鍵,好比nano的保存爲CTRL+W,vim的保存爲:w;
基於命令行的文本編輯器是必要的,由於Linux的tty1~tty6都是命令行界面,是打不開圖形界面的文本編輯器的;
 
vi是每一個Linux Distribution都默認安裝的文本編輯器,而且不少軟件的默認編輯器都是vi,所以學習vi是很必要的;
vim是vi的高級版本,vi是文本編輯器,而vim應該說是程序編輯器,由於可以像通常的IDE同樣,根據文件名載入不一樣的語法高亮,即顏色區分,好比java文件會遵循java的語法高亮;
下面咱們就編寫一個"hello world"的java程序來看看vim的語法高亮;
 
 
能夠看出vim有很好的語法檢查功能,由於關鍵字都使用了不一樣的顏色標出;
 
 
vi有三種模式:
(1)通常模式:進入vi的默認模式,可以進行復制、黏貼、刪除等操做;
(2)編輯模式:從通常模式按下‘i’便可進入;
(3)命令行模式:從通常模式按下「:」、'?'、'/'便可進入;
 
注意:若是安裝了vim後,輸入vi後也是使用vim編輯器,咱們輸入alias後看到「alias vi='vim'」;
 
 
2、vi/vim按鍵
 
 

「通常模式」的經常使用按鍵html

hjava

向左vim

Jwindows

向下編輯器

K學習

向上編碼

lspa

向右操作系統

20h命令行

向左20個字符

20j

向下20行

20k

向上20行

20l

向右20個字符

Page Up

向上翻頁

Page Down

向下翻頁

Home

光標移到當前行的最左端

End

光標移到當前航的最右端

n [空格]

光標向右移動n個字符

N[Enter]

光標向下N行

G

光標移到最後一行

nG

光標移動到第n行

gg或1G

光標移動到第一行

/word

向下查找word

?word

向上查找word

n

若是是/word後使用,則表示向下繼續查找;

若是是?word後使用,則表示向上繼續查找;

N

若是是/word後使用,則表示向上繼續查找;

若是是?word後使用,則表示向下繼續查找;

:n,m/old/new/g

從第n行到第m行中,將old替換爲new

:n,$s/old/new/g

從第n行到最後一行中,將old替換爲new

u

相似windows中的CTRL+Z,前一步

x

向後刪除一個字符

X

向前刪除一個字符

3x

向後刪除3個字符

3X

向前刪除3個字符

dd

刪除當前行

3dd

刪除當前行開始的3行

yy

複製當前行

3yy

複製當前行開始的3行

p

黏貼到當前光標的下一行

P

黏貼到當前光標的上一行

CTRL+r

重作前一個操做

.

重複前一個操做

 

「命令行模式」的經常使用按鍵

:w

保存

:q

退出vim

:wq

保存並退出

:wq!

(在能夠轉換權限的狀況下)強制保存並退出

:q!

直接退出不保存

:w filename

另存爲filename

:n,m w filename

將第n行到第m行另存爲filename

:set nu

顯示行號

:set nonu

不顯示行號

:! command

暫時離開vim,並執行command,執行完後再進入vim

:r filename

將filename文件的數據讀入當前文件

:set all

顯示當前vim的環境配置

 
3、vim的恢復機制
 
 
vim正在編輯某個文件時都會同時存在 .file.swp,此文件用來暫存,幫助恢復文件內容,當vim正常關閉此文件時,.filename.swp文件會消失;
 
 
 
咱們看到圖中說明了出現此界面的兩個緣由:
(1)多人同時編輯此文件:由於Linux是多用戶的操做系統,所以可能兩我的同時登錄並編輯此文件,若是A進入系統開始編輯1.txt文件,則會出現.1.txt.swp,當A還沒編輯完但B也想進去編輯時,由於此文件的目錄中存在.1.txt.swp,則就會出現上圖的界面;
(2)非正常關閉文件;
 
圖中最後一行說明了咱們此時能夠採起的幾個動做:
(1)o:以只讀方式打開;
(2)R:恢復,即從swp文件中恢復,可是swp文件不會隨着vim關閉而刪除,須要手動刪除;
(3)d:刪除swp文件;
(4)q:退出vim;
 
4、vim記錄及默認配置文件
 
 
/etc/vimrc文件爲全局vim配置文件;
 
1.若是咱們用xiazdong帳戶使用vim後,在/home/xiazdong就會出現.viminfo文件,此文件用來做爲vim的日誌,記錄用戶使用vim打開了什麼文件,作了什麼操做;
2.若是xiazdong帳戶想要配置vim的默認環境,則能夠在/home/xiazdong建立.vimrc,而且配置一些特徵,好比顯示行號,語法檢查等;
通常使用以下配置:

set hlsearch
set backspace=2
set autoindent
set nu
set ruler
set showmode
set bg=dark
syntax on

 
 
5、Visual Block功能
 
能夠用於塊複製;
(1)CTRL+v:開始複製塊;
(3)y:複製塊;
(4)p:黏貼塊;
(5)d:刪除塊;
 
 
 
 
6、同時編輯多個文件
 
多文件編輯的好處是可以將一個文件的某些內容yy後,p到另外一個文件中;
 
vim file1 file2 便可同時編輯兩個文件,可是屏幕中同時只會出現一個文件內容,須要進行切換;
(1):n:向下切換;
(2):N:向上切換;
(3):files:列出當前編輯的全部文件;
 
7、多窗口編輯
 
以下圖:一個界面可以顯示多個文件內容;
 
 

 
(1) :sp :打開當前文件;
(2) :sp filename:打開filename文件;
 
(1)CTRL+w+↓:光標切換到下一個窗口;
(2)CTRL+w+↑:光標切換到上一個窗口;
(3):q:關閉光標所在的窗口;
 
 
8、編碼問題
 
 
可能會出現亂碼問題,解決方法:保持終端的字符編碼與文件的字符編碼一致!
tty1~tty6不支持顯示中文,所以在tty1~tty6中顯示中文必出現亂碼;
設置終端的字符編碼:
 
 
編碼轉換命令:iconv
iconv -f 文件的本來編碼 -t 文件的新編碼 filename -o newfilename
好比有一個big5編碼的文件:1.big5,要轉換成utf8的文件:2.utf8,則: iconv -f big5 -t utf8 1.big5 -o 2.utf8
 
 
來源:http://www.cnblogs.com/iqian/articles/5243005.html
相關文章
相關標籤/搜索