Vim經常使用命令

VimVi 的加強版本,它沒有菜單。只有命令。 www.vim.orgvim

官方教材:vimbookthis

插入spa

ablog

在當前光標後插入文本ci

A文檔

在本行行尾插入文本字符串

iget

在光標前插入文本string

Iit

在本行行首插入文本

o

在光標下插入新行

O

在光標上插入新行

h

左移一個字符

j

下移一個字符

k

下移一個字符

I

右移一個字符

$

移動至當前行的行尾

0

移動至當前行的行首(數字零)

H

移動屏幕上端

M

移動至屏幕中央

L

移動屏幕下端

Gg

到整個文件的第一行

G

到整個文件的最後一行

nG

到第n行,例如5G 到整個文件的第5行

:n

到第n行

刪除

x

刪除光標所在處字符

nx

刪除光標所在處n個字符

dd

刪除光標所在行

ndd

刪除n行,例如:5dd   刪除5

dG

刪除光標所在處到末尾的內容

D

刪除從光標所在處到行尾

:n1,n2d

刪除指定範圍的行,表示刪除從n1行開始至n2行。例如:8,20d  表示刪除從第8行至第20行的內容

複製和粘貼

yy,Y

複製當前行

nyy,nY

複製當前行如下的n

dd

剪切當前行(先刪除再粘貼)

ndd

剪切當前行如下n

p

將內容粘貼在當前光標所在行的下一行(小寫)

P

將內容粘貼在當前光標所在行的上一行(大寫)

D

刪除從光標所在處到當前行的行尾

:n1,n2d

刪除指定範圍的行,表示刪除從n1行開始至n2行。例如:8,20d  表示刪除從第8行至第20行的內容

替換和取消

r

替換光標所在處的字符

R

從光標所在處開始替換字符,按ESC結束。

例如:this is a test document

假如當前光標在a處,你在命令模式下輸入了R。則你開始輸入的內容都會把a test document給替換掉

u

取消上一步操做

搜索和替換

/string

/表示從文檔從前日後查找string

當按n的時候就會跳轉到字符在一個出現的地方,當按N的時候,會向上跳轉到上次出現的地方

開啓搜索時忽略大小寫 :set ic

關閉搜索時忽略大小寫 :set noic

n

從前日後查詢字符出現的位置

N

從後往前查找字符出現的位置

:%s/old/new/g

全文替換指定字符串,old表示要替換的字符。new表示要替換成的字符

例如,將文檔中全部123字符替換爲789

:%s/123/789/g

:n1,n2s/old/new/g

在必定範圍內替換指定字符串,跟全文相似。只不過在必定範圍。n1n2表示在某必定行內。

例如:將第10行至12行中的789替換成007字符

:10,12s/789/007/g

也能夠把:10,12s/789/007/g後面的g改成c字符(:10,12s/789/007/c),會出現確認信息提示你是否要替換(相似Windows中的:你肯定要刪除嗎?)

replace with 007 (y/n/a/q/l/^E/^Y)?

y:替換

n:不替換

a:替換全部

q:取消替換

保存和退出

:w

只保存不退出

:w a.txt

保存至a.txt文件(另存爲)

:q

只退出

:q!

退出不保存

:wq

退出並保存

:wq!

強行退出並保存(只針對於文件的全部者或者root才能這樣作)

ZZ

退出並保存(等同於:wq

其餘技巧

導入文件

:r  文件名

1:將hello文件的內容導入到當前光標所在處

:r hello

導入命令執行結果

:r   !命令

2:將系統當前時間導入到當前光標處

:r !date

vi中執行命令

:!  命令

例如:正在vi編輯某個文件的時候,想查看/root/test目錄下有哪些內容,能夠執行以下命令

:! ls /root/test

此時屏幕將會出現test目錄中的內容,會提示你按任意鍵回到vi編輯中

Press ENTER or type command to continue

定義快捷鍵

:map 快捷鍵 觸發命令

1:無論光標在當前行的任意位置,當按下ctrl+b的時候。將行首的#註釋給刪除掉。

命令以下

:map ^b 0x

2:無論光標在當前行的任意位置,當按下ctr+p的時候。給行首添加#註釋

:map ^P I#<ESC>

 

^表示是ctrl鍵)^b是經過ctrl+v+b或者ctrl+v   ctrl+b給按出來的。若是是經過ctrl按出來的^的話,顯示的是這樣

^p是綠色的

取消快捷鍵

:unmap 快捷鍵

例如:取消ctrl+b的快捷鍵

:unmap ^b

連續行註釋

:n1,n2s/^/#/g

:n1,n2s/^/#//g

:n1,n2s/^/\/\//g

1:在510行行首添加#

命令以下

:5,10s/^/#/g

^表示回到行首

2:取消510行行首的#

:5,10s/^#//g

3:在510行行首添加//

:5,10s/^/\/\//g

其中\表示轉義字符,\/\/不是字母W而是\/

替換

:ab abc abc@163.com

表示當你輸入abc的時候,會自動轉換爲abc@163.com

1:若是你在vi中常常輸入一串字符,而又不想定義快捷鍵。可使用ab的方式。假如,你常常輸入abc@163.com。則能夠像下面這樣

:ab abc@163.com

這條命令會在你在vi中輸入abc時,回車或者空格時,abc字符將會變成abc@163.com

 

配置VI

vi的配置文件在每一個用戶的home目錄下的.vimrc文件,若是想每一個用戶都生效,則修改/etc/vimrc文件

沒有這個文件的話,能夠新建一個,注意權限問題

例如vi /root/.vimrc文件,輸入以下簡單配置

syntax on

set nu

set autoindent

在使用vim的時候有語法高亮,可是使用vi的時候沒有語法高亮的解決辦法?

設置vim的別名爲vi便可:alias vi=vim

相關文章
相關標籤/搜索