天天看點

vim編輯器

  vim---Vi IMproved by Bram Moonlenaar,是模式化的文本編輯器。有三種模式,分别是:

編輯模式,也叫指令模式;輸入模式,有時也叫插入模式;末行模式。

三種模式之間的轉換:

vim編輯器

注意:末行模式不能與輸入模式通信。

一、打開vim編輯器

#vim [options] FILE 1,1

i:insert,在目前光标所在處插入,插入在光标前。

a:append,在目前光标所在處插入,插入在光标後。

I:在目前光标所在行的行首,插入操作。

A:在目前光标所在行的行尾,插入操作。

o:在光标所在行的下方打開一個新行,并轉入輸入操作。

O:在光标所在行的上方打開一個新行,并轉入輸入操作。

退出:

儲存退出,:wq;:wqall(多個檔案);zz

不儲存退出::q(無編輯退出); :q!(已編輯退出); :qall!(退出所有檔案)

          以下均在編輯模式進行

二、在vim中如何使光标移動

h, ←:向左移動

j, ↓:向下移動

k, ↑:向上移動

l, →:向右移動

三、如何在單詞間跳轉

w:跳至下一個單詞詞首

e:先跳至本單詞詞尾,再跳至下一個單詞的詞尾。

b:先跳至本單詞詞首,再跳至上一個單詞的詞首。

(: 在句子間跳轉,向前一句。

):在句子間跳轉,向後一句。

{:跳過整個段落,向上一段。

}:跳過整個段落,向下一段。

^:可快速跳至目前行的行首(第一個非空白字元)。

0:可快速跳至目前行的絕對行首。

$:可快速跳至目前行的絕對行尾。

行間跳轉:

G: #G 跳至第#行

     G 跳至檔案最後一行

    1G 跳至檔案首部

四、如何翻屏

Ctrl+f: 向尾部翻一屏。

Ctrl+b: 向首部翻一屏。

Ctrl+d: 向尾部翻半屏。

Ctrl+u: 向首部翻半屏。

常用指令:

c: 修改,可在轉換至輸入模式之前删除一些東西。c要與跳轉字元一塊用,限定範圍。cc:删除光标所在行,并進入輸入模式。ncc: 删除n行。

d: 與c的作用一樣,可删除東西,但不會進入輸入模式。

删除字元 : x 删除目前光标所在處的單個字元;

           nx 删除光标及其後n 個字元;

            X 向光标前删除單個字元 

替換: r ,replace 隻能操一個字元,并且不會轉換模式。如 5rA,表示把光标及其       後5個字元換成A。

      R,進入替換模式

撤銷:u(undo),撤銷最近一次的編輯操作。

      uu ,撤銷最近2次的編輯操作。

      nu,撤銷最近n次的編輯操作。

      Ctrl+r: 撤銷剛才的撤銷操作。

重做: . ,(redo) 重複執行上一條指令或操作 。

複制: y(yunk),

       y$:複制從光标到行尾的内容。

       yy:複制目前光标所在行的整行内容。

      nyy:複制目前光标所在行的其後n行的内容。

粘貼: p,若是複制的整行,則在目前光标所在行的下方粘貼;若不是整行,則在光        标後粘貼。

       P,若是複制的整行,則在目前光标所在行的上方粘貼;若不是整行,則在光        标前粘貼。

移動:先用d删除,再用p粘貼。

查找指令:

v:按字元選取

V:按行選取

/keyword(關鍵字):

?keyword(關鍵字):

n/N:向前或向後查找。

查找後并替換:

s: 在末行模式下使用

ADDR1(始),ADDR2(末)  s/from(查找什麼)/to(替換成什麼)/flags(動作修正符)

flags: i 忽略大小寫

       g 全局都替換

m,n : 從第m行到第n行。

1,$ :第一行到最後一行。

. ,+8:從目前行往後8行(共九行)

1,$-1:第一行到倒數第二行。

% :全文搜尋,第一到最後一行。

查找内容可使用正規表達式,替換的内容可使用``。

測試一下:

(1)把inittab中以#開頭,其後有空白,空白後還有内容的行,将#與空白去掉,若#後全是空白,則不動。

①:%s@^#@@ 把#删除

②:%s@^#[[:space:]]*@@g 把#與空白去掉

③:%s@^#[[:space:]]*\([^[:space:]]\)@\1@g 保留#後的空白

(2)在全文找到以e結尾的單詞,并把e換成E

: %s@\<\([[:alpha:]]\{1,\}\)e@\1E@g

五、若vim同時打開多個檔案:

:next 切換至下一個文檔

:first 切換至第一個文檔

:last 切換至最後一個文檔

:prev 切換至上一個文檔

分割視窗:

   水準分割 Ctrl+w,後按s

        Ctrl+w,t:切換至最上一個視窗(多個視窗時)

        Ctrl+w,b:切換至最下一個視窗(多個視窗時)

        Ctrl+w,j:切換至下一個視窗

        Ctrl+w,k:切換至上一個視窗

    垂直分割 Ctrl+w,後按v

        Ctrl+w,l:切換至最左一個視窗(多個視窗時)

        Ctrl+w,r:切換至最右一個視窗(多個視窗時)

        Ctrl+w,h:切換至左邊視窗

        Ctrl+w,l:切換至右邊視窗

顯示分割多個檔案:

 -o: 水準分割 如 vim -o

 -O: 垂直分割 如 vim -O

六、設定vim的工作屬性

 vim的配置檔案是 /etc/vimrc 和 ~/.vimrc。若想設定在全局生效,則在/etc/vimrc下配置;若想設定在本使用者下生效,則在~/.vimrc下設定。

   顯示行号:set nu

   取消行号: nonu (目前視窗編輯時)

   自動縮進: set ai

   取消縮進: set noai

   文法高亮: syntax on|off

   搜尋高亮: set hlsearch 或  no hlsearch

    大緻上vim的簡單指令已經介紹完了,這是彌補前面用到的而我沒有說明過的vim編輯器的指令及用法,在這裡又寫一遍,記憶更深刻一些。

    明天就要上課了,又要開始緊張了,繃緊了弦子,努力學習!!!

       每天進步一點點,每一天都有不一樣的收獲!

參考别人的部落格及本人的使用經驗,添加一點新内容:

J 将下一行和目前行連接配接為一行

cc 删除目前行并進入編輯模式

cw 删除目前字,并進入編輯模式

c$ 擦除從目前位置至行末的内容,并進入編輯模式

s 删除目前字元并進入編輯模式

S 删除光标所在行并進入編輯模式

xp 交換目前字元和下一個字元

u 撤銷

ctrl+r 重做

. 重複上一個編輯指令

~ 切換大小寫,目前字元

g~iw 切換目前字的大小寫

gUiw 将目前字變成大寫

guiw 将目前字變成小寫

>> 将目前行右移一個機關

<< 将目前行左移一個機關(一個tab符)

== 自動縮進目前行

% 跳到與目前括号比對的括号處,如目前在{,則跳轉到與之比對的}處

w 跳到下一個字首,按标點或單詞分割

yw 複制目前光标所在字首的單詞

W 跳到下一個字首,長跳,如end-of-line被認為是一個字

e 跳到下一個字尾

E 跳到下一個字尾,長跳

b 跳到上一個字

B 跳到上一個字,長跳

0 跳至行首,不管有無縮進,就是跳到第0個字元

^ 跳至行首的第一個字元

$ 跳至行尾

gg 跳至檔案的第一行

gd 跳至目前光标所在的變量的聲明處

[N]G 跳到第N行,如0G,就等價于gg,100G就是第100行

fx 在目前行中找x字元,找到了就跳轉至

; 重複上一個f指令,而不用重複的輸入fx

tx 與fx類似,但是隻是跳轉到x的前一個字元處

Fx 跟fx的方向相反

),( 跳轉到上/下一個語句

* 查找光标所在處的單詞,向下查找

# 查找光标所在處的單詞,向上查找

`. 跳轉至上次編輯位置

可視模式

标記文本

v 進入可視模式,單字元模式

V 進入可視模式,行模式

ctrl+v 進入可視模式,列模式,類似于UE的列模式

o 跳轉光标到選中塊的另一個端點

U 将選中塊中的内容轉成大寫

O 跳轉光标到塊的另一個端點

aw 選中一個字

ab 選中括号中的所有内容,包括括号本身

aB 選中{}括号中的所有内容

ib 選中括号中的内容,不含括号

iB 選中{}中的内容,不含{}

對标記進行動作

> 塊右移

< 塊左移

y 複制塊

d 删除塊

~ 切換塊中内容的大小寫

繼續閱讀