Linux文本處理---文本編譯器vim


    vim:(visual interface improved),是一款全屏的純文本ASSCII的編輯器,是 vi 的加強版,相比較 vi 來講,vim支持語法高亮等特色。正則表達式

    vim是一種模式化的編輯器,常見的模式有編輯模式(命令模式),輸入模式,末行模式,可視化模式,多文件模式,多窗口模式等。
vim

    Usage: vim [option]... [FILE]...編輯器

    vim 選項+
ide

    vim + file 打開文件時光標處在最後一行的行首
spa

    vim +3 file  打開文件時光標處在第三行的行首命令行


1、各個模式的介紹orm

    編輯模式(命令模式):這個模式下鍵盤操做一般被理解爲編輯命令接口

    輸入模式:此模式下用戶能夠輸入文本內容ci

    末行模式:vim內置命令行接口,執行vim內置變量字符串

    可視化模式:此模式下用戶能夠高亮選擇文本的內容

    多文件模式:此模式下用戶一次能夠打開多個文件

    多窗口模式:此模式下在全屏下可顯示多個窗口來編輯文件

    

2、各個模式之間的切換

模式切換類型 切換方法
編輯模式 -> 輸入模式 i,a 在光標所在處的前方,後方轉換爲輸入模式
I,A 在光標所在處的行首,行尾轉換爲輸入模式
o,O 在光標所在行的上一行,下一行轉換爲輸入模式
輸入模式 -> 編輯模式 ESC
編輯模式 -> 末行模式 :
末行模式-->編輯模式 ESC


3、編輯模式(命令模式)下的文本操做

操做分類 具體方法及意義
光標移動 字符間移動 j,k j:向下移動光標      k:向下移動光標
h,l h:向左移動光標      l:向右移動光標
#{h|j|k|l} 3h:向左跳躍光標3個字符   4j:向下跳躍光標4行
單詞間移動 w w:光標移動到下一個單詞詞尾
e,b

e:光標跳躍到當前或下一個單詞詞尾

b:光標跳躍到當前或上一個單詞詞首

#{w|e|b}

3w:光標跳躍到下3個單詞的詞尾

4b:光標跳躍到上3或4(光標剛好在詞首)個單詞的詞首

行內移動 0,$

0:光標跳躍到絕對行首

$:光標跳躍到絕對行尾

^ ^:光標跳躍到行首第一個非空白字符開頭處

Ctrl+f

Ctrl+b

Ctrl+u

Ctrl+d

向文件尾部翻一屏

向文件首部翻一屏

向文件尾部翻半屏

向文件首部翻半屏

行間移動 #G 5G:將光標跳躍到第5行行首第一個非空白字符開頭處
G,gg

G:將光標跳躍到行尾第一個非空白字符開頭處

gg:將光標跳躍到行首第一個非空白字符開頭處

編輯命令 x類 x,#x

x:刪除光標所在處的字符

4x:刪除光標所在處以及以後的共4個字符

d類 dd D #dd d#d

dd:刪除光標所在處的一整行

D:同 d$ 同樣,刪除光標所在處行向後的全部內容

d結合w,e,b,^,$,0,G,gg一塊兒使用

dgg:刪除光標處以及光標處到行首的全部內容

db:刪除光標處到光標處前單詞的單詞首部的內容

y類 yy,Y,y#y,#yy

yy Y:複製光標所在處的整行

y3y 3yy:複製光標所在處的及如下共3行

結合w,e,b,^,$,0,G,gg一塊兒使用

yw:複製光標所在處向後一個單詞首部的的字符

y$:複製光標所在處向後這行全部的的字符

yG:複製光標所在處向後文件尾部行全部的的字符

p類 p P

行級別:

    p: 粘貼於當前行下方

    P:  粘貼於當前行上方      

小於行級別:

    p: 粘貼於當前光標所在處的後方

    P:粘貼於當前光標所在處的前方

c類 cc,#c cc C:刪除光標所在處的一整行,並進入輸入模式
結合w,e,b,^,$,0,G,gg一塊兒使用

cgg:刪除光標所在處到文件行首的全部內容,並進入輸入模式

c0:刪除光標所在處到行首的全部內容,並進入輸入模式

撤消編輯
u,#u

u:撤銷上一次操做

3u:撤銷前3次操做

ctrl+r 撤銷上一次撤銷操做
重複
. 重複上一條命令


4、末行模式

    末行模式是執行一些vim的內置變量,以及問搜索、替換、刪除等操做。在這裏要引入內容定界。

    內容定界的格式是:startpos,endpos。說明在末行模式下操做的範圍。   


內容定界符 具體意義
#

#:第#行

3:表示第三行

. .:表示當前行
$ $:表示最後一行
% %:表示全文 等價於 1,$
$-#    .+#

支持像$-2, .+2等內容定界 .+1,$-1 表示當前行的下一行至倒數第二行

    下面介紹末行模式的的操做方法以及意義,這些操做都是結合內容定界符一塊兒使用的。


種類 具體意義
c d y 

:%y 複製整個文本內容

:.,30d 刪除當前行道30行的內容

100c:刪除100的內容,並變爲輸入模式,在100行的行首

w r 

w /path/to/somefile: 將選定範圍內的內容保存至某文件

r /path/from/somefile: 將指定的文件中的內容讀取到指定位置中

`例如:

:1,100w /tmp/test.txt 將1,100的內容保存到/tmp/test.txt文件中

:54r /etc/passwd 將/etc/passwd文件內容加入到54行的下面

s///gi

s/要查找內容的模式/要替換的字符串或者引用/gi

其中g: global, 全行替換  i: 不區分字符大小寫

:%s@^[[:space:]]\{1,\}@@g 刪除整個文本的空白行

/ ?

/ ? 是命令行搜索,支持正則表達式

/pattern 向下搜索

?pattern 向上搜索

N n 使用n,N上下查看

命令

:set nu    顯示行號

:set nonu   取消顯示行號

:set ai   自動縮進

:set noai  取消自動縮進

:set ic   設置忽略大小寫

:set noic 取消設置忽略大小寫

:set sm  設置括號匹配

:set nosm 取消設置括號匹配

:syntax on|off 設置語法高亮

:set hlsearch 設置搜索高亮

:set nohlsearch 取消設置搜索高亮


5、可視化模式,多文件模式,多窗口模式

1)可視化

    v:指的是國標所走過的字符

    V:指的是國標所走過的行

    例如:在某些連續的行首加入#號。編輯模式下:V-->選中行--->I--->#---->ESC就可完成此功能。

2)多文件模式

    vi file1 file2 file3... 在末行模式下可使用next,previous,last,first關鍵字打開下一個,上一個,最後一個,第一個文件。使用wqall能夠保存所有文件。

3)多窗口模式

    多文件模式:vim -o:水平分割窗口

                    -O:垂直分割窗口

    單文件模式:

        Ctrl+w, s: 水平分割

        Ctrl+w, v: 垂直分割

6、配置文件

    /etc/vimrc:全局的

    ~/.vimrc:用戶模式下的配置文件



補充:

1.設置製表符寬度
:set tabstop=4
:set softtabstop=4
2.設置縮進的空格數
:set shiftwidth=4
3.每行的縮進值與上一行相等
:set autoindent
4.使用 C/C++ 語言的自動縮進方式
:
set cindent
5.顯示行號
:set nu
6.將搜索內容反白
:set hlsearch
7.能夠刪除任意值
:set backspace=2


本文側重介紹的是vim文本編輯器的使用。

相關文章
相關標籤/搜索