vim和shell下常用的編輯命令

2021-06-11 21:19:25 字數 3510 閱讀 6352

vim和shell下常用的編輯命令

由於和linux系統的很多操作都是通過命令列來實現的,所以掌握一些簡單的命令列操作會大大節省我們在不必要的環節所浪費的時間,現就vim和shell下常用的編輯命令總結。

一、shell下:

ctrl+l            清屏命令

ctrl+a           移動游標到行首

crtl+e           移動游標到行尾

ctrl+h           往後刪除乙個字元

ctrl+d           往前刪除乙個字元

ctrl+b           往後移動乙個字元

ctrl+f            往前移動乙個字元

ctrl+w          剪下前乙個單詞(空格間隔的字串單元)

ctrl+u           剪下到行首

ctrl+k           剪下到行尾

ctrl+r            查詢歷史執行命令

ctrl+p            前一條指令

ctrl+n            後一條指令

二、vim下的常用操作

h  左,或 backspace 或方向鍵

j  下,或 enter 或 +(要 shift 鍵),或方向鍵

k  上,或 方向鍵或 -(不必 shift 鍵)

l  右,或 space 或方向鍵

使用 hjkl 鍵的移動是為了使手不必離開打字區(鍵盤**的部位),以加快打字的速度,如果各位不習慣,那就使用方向鍵吧!

ctrl-f    即 pagedown 翻頁。

crtl-b    即 pageup 翻頁。           

0  是數目字 0 而不是英文本母 o。或是 hmoe 鍵,移至行首,(含空白字元)。

^  移至第乙個非空白字元,注意,要 shift 鍵。

$  移至行尾,或 end 鍵。要 shift 鍵。

以上兩個按鍵是源自規則表示式(regular expression),在 regexp 中 ^ 是匹配行首,$ 是匹配行尾。

g  移至檔尾(最後一行的第乙個非空白字元處)

gg 移至檔首(第一行之第乙個非空白字元處)

gg 是 vim 的擴充功能,在 elvis 或原始 vi 中可用 1g 來移至檔首(是數字 1 不是英文本 l)。

g 之原意是 goto,指移至指定數目行之行首,如不指定數目,則預設是最後一行。

w  移至次乙個字(word)字首。當然是指英文單字。

w  同上,但會忽略一些標點符號。

e  移至前乙個字字尾。

e  同上,但會忽略一些標點符號。

b  移至前乙個字字首。

b  同上,但會忽略一些標點符號。

h  移至螢幕頂第乙個非空白字元。

m  移至螢幕中間第乙個非空白字元。

l  移至螢幕底第乙個非空白字元。

這和 pagedown,pageup 不一樣,內文內容並未動,只是游標在動而已。

n| 移至第 n 個字元(欄)處。注意,要用 shift 鍵。n 是從頭起算的。

:n 移至第 n 行行首。或 ng。

替換命令

:s/vivian/sky/ 替換當前行第乙個 vivian 為 sky

:s/vivian/sky/g 替換當前行所有 vivian 為 sky

:n,$s/vivian/sky/ 替換第 n 行開始到最後一行中每一行的第乙個 vivian 為 sky

:2,$s/vivian/sky/g 替換第 2 行開始到最後一行中每一行所有 vivian 為 sky,n 為數字

:%s/vivian/sky/(等同於 :g/vivian/s//sky/) 替換每一行的第乙個 vivian 為 sky

:%s/vivian/sky/g(等同於 :g/vivian/s//sky/g) 替換每一行中所有 vivian 為 sky

可以使用 # 作為分隔符,此時中間出現的 / 不會作為分隔符

:s#vivian/#sky/# 替換當前行第乙個 vivian/ 為 sky/

:%s+/oradata/apras/+/user01/apras1+ (使用+ 來 替換 / ): /oradata/apras/替換成/user01/apras1/

1.:s/vivian/sky/ 替換當前行第乙個 vivian 為 sky

:s/vivian/sky/g 替換當前行所有 vivian 為 sky

2. :n,$s/vivian/sky/ 替換第 n 行開始到最後一行中每一行的第乙個 vivian 為 sky

:n,$s/vivian/sky/g 替換第 n 行開始到最後一行中每一行所有 vivian 為 sky

(n 為數字,若 n 為 .,表示從當前行開始到最後一行)

3. :%s/vivian/sky/(等同於 :g/vivian/s//sky/) 替換每一行的第乙個 vivian 為 sky

:%s/vivian/sky/g(等同於 :g/vivian/s//sky/g) 替換每一行中所有 vivian 為 sky

4. 可以使用 # 作為分隔符,此時中間出現的 / 不會作為分隔符

:s#vivian/#sky/# 替換當前行第乙個 vivian/ 為 sky/

5. 刪除文字中的^m

問題描述:對於換行,window下用回車換行(0a0d)來表示,linux下是回車(0a)來表示。這樣,將window上的檔案拷到unix上用時,總會有個^m.請寫個用在unix下的過濾windows檔案的換行符(0d)的shell或c程式。

· 使用命令:cat filename1 | tr -d "^v^m" > newfile;

· 使用命令:sed -e "s/^v^m//" filename > outputfilename。需要注意的是在1、2兩種方法中,^v和^m指的是ctrl+v和ctrl+m。你必須要手工進行輸入,而不是貼上。

· 在vi中處理:首先使用vi開啟檔案,然後按esc鍵,接著輸入命令:%s/^v^m//。

· :%s/^m$//g

如果上述方法無用,則正確的解決辦法是:

· tr -d "\r" < src >dest

· tr -d "\015" dest

·strings a>b

6. 其它

利用 :s 命令可以實現字串的替換。具體的用法包括:

:s/str1/str2/ 用字串 str2 替換行中首次出現的字串 str1

:s/str1/str2/g 用字串 str2 替換行中所有出現的字串 str1

:.,$ s/str1/str2/g 用字串 str2 替換正文當前行到末尾所有出現的字串 str1

:1,$ s/str1/str2/g 用字串 str2 替換正文中所有出現的字串 str1

:g/str1/s//str2/g 功能同上

從上述替換命令可以看到:g 放在命令末尾,表示對搜尋字串的每次出現進行替換;不加 g,表示只對搜尋字串的首次出現進行替換;g 放在命令開頭,表示對正文中所有包含搜尋字串的行進行替換操作

liunx下的vim編輯

vi編輯器是所有unix及linux系統下標準的編輯器,他就相當於windows系統中的記事本一樣,它的強大不遜色於任何最新的文字編輯器。他是我們使用linux系統不能缺少的工具。由於對unix及linux系統的任何版本,vi編輯器是完全相同的,學會它後,您將在linux的世界裡暢行無阻。vim具有...

Vim編輯器和編寫Shell指令碼

命令模式 搜尋 複製 貼上 替換 刪除。切換的橋梁 輸入模式 相當於windows記事本,隨意編輯的編輯環境 末行模式 儲存 退出 設定編輯環境 shell指令碼 互動式 使用者每輸入一條命令就立即執行 批處理 由使用者事先編寫好乙個完整的shell 指令碼,shell 會一次性執行指令碼 中諸多的...

VIM編輯器和Shell命令指令碼

注意 在linux中一切皆檔案,而配置乙個服務就是在修改其配置檔案的引數。vim開啟檔案的方式 4種 1.命令模式 注意 該模式是開啟檔案的第乙個看到的模式,開啟檔案即可看到。剪下 刪除操作 注意 嚴格意義上屬剪下命令,如果不貼上就是刪除的效果 撤銷 恢復 擴充套件 2.編輯模式 3.末行模式 儲存...