Vim和nano的區別

Vimnano的區別

Linux下有很多文本編輯器,其中系統(不管哪個分支)都會自帶nanovim這兩個最基本的編輯器。vim相當于vim的升級版。今天將重點分析一下vimnano的各自功能及區別。

1.nano

直接在命令行中敲入nano newfile即可打開文件或新建文件。

Vim和nano的區別

可以看到第一行反白介紹了nano的版本號以及被編輯的文件名稱。接下來就是可編輯區域,這里由于newfile文件是一個新建文件,內容為空,所以編輯區域沒有任何文本文字。再看最后的兩行,這是nano下可以使用的一些快捷鍵,其對應的含義翻譯如下:

ctrl+G: 取得在線幫助

ctrl+O: 保存文件,如果你有權限就可保存修改的文件

ctrl+R: 從其他文件讀入數據,可將某個文件的內容貼在本文件中

ctrl+Y: 顯示前一頁

ctrl+K: 剪切當前行的內容

ctrl+C顯示光標所在的位置

ctrl+X: 退出nano,如有有修改過文件,則會提示是否要保存修改的內容

ctrl+J: 調整文本格式

ctrl+W: 查找命令,按下后會跳轉到末行的反白位置,輸入要查找的內容回車即可。

ctrl+V:顯示下一頁

Ctrl+U:撤銷截切命令,這里測試了一下,不是簡單的撤銷某一行的命令,當光標定位到撤銷行的位置時,如果該位置有多行被剪切,會還原剪切的所有內容,但是多次按下Ctrl+U會多次還原,這可能是一個bug。這個快捷鍵與windows下的ctrl+v類似。讀者可以先試著這樣理解。

Ctrl+T: 還不知道是什么意思,貌似是檢查拼寫,但不知道怎么用

nanolinux入門該學習得最佳工具,這里我們只需要知道如何進入編輯,如何保存退出即可。接下來我們來看看vim編輯器。

2.vim編輯器

vim是老式的文字處理器vi的升級版,相對于較為簡單的nano,其功能已經很齊全。

1vim的模式

vim分為三種模式

一般模式:以vim打開或新建一個文件就可以直接進入一般模式,在此模式中,你可以使用上下左右來進行光標的移動,可以刪除字符或整行,可以復制粘貼文件數據。

編輯模式:顧名思義,就是可以編輯文本的模式,在一般模式下,按下“i,I,o,O,a,A,r,R”這些字母可進入編輯模式,進入編輯模式后在左下方會有INSERTREPLACE的字樣。

在編輯模式下按下ESC鍵會退出到一般模式下。

命令行模式:在一般模式下,輸入” :, / , ? “這三個字符中的任意一個會將光標移動到當前頁面最下面的一行,在這個模式中可以進行數據查找、替換、保存、離開vim等操作。

使用vim filename可進入vim一般模式:

Vim和nano的區別

一般模式下熱鍵說明:

移動光標的方法

h 向左箭頭鍵()

光標向左移動一個字符

j 向下箭頭鍵()

光標向下移動一個字符

k 向上箭頭鍵()

光標向上移動一個字符

l 向右箭頭鍵()

光標向右移動一個字符

如果你將右手放在鍵盤上的話,你會發現 hjkl 是排列在一起的,因此可以使用這四個按鈕來移動光標。 如果想要進行多次移動的話,例如向下移動 30 行,可以使用 “30j” “30的組合按鍵, 亦即加上想要進行的次數(數字)后,按下動作即可!

[Ctrl] + [f]

屏幕『向下』移動一頁,相當于 [Page Down]按鍵 (常用)

[Ctrl] +

屏幕『向上』移動一頁,相當于 [Page Up] 按鍵 (常用)

[Ctrl] + [d]

屏幕『向下』移動半頁

[Ctrl] +

屏幕『向上』移動半頁

+

光標移動到非空格符的下一列

光標移動到非空格符的上一列

n<space>

那個 n 表示『數字』,例如 20 。按下數字后再按空格鍵,光標會向右移動這一行的 n 個字符。例如 20<space> 則光標會向后面移動 20 個字符距離。

0 或功能鍵[Home]

這是數字『 0 』:移動到這一行的最前面字符處 (常用)

$ 或功能鍵[End]

移動到這一行的最后面字符處(常用)

H

光標移動到這個屏幕的最上方那一行的第一個字符

M

光標移動到這個屏幕的中央那一行的第一個字符

L

光標移動到這個屏幕的最下方那一行的第一個字符

G

移動到這個檔案的最后一行(常用)

nG

n 為數字。移動到這個檔案的第 n 行。例如 20G 則會移動到這個檔案的第 20 (可配合 :set nu)

gg

移動到這個檔案的第一行,相當于 1G ?。?/span> (常用)

n<Enter>

n 為數字。光標向下移動 n (常用)

搜尋與取代

/word

向光標之下尋找一個名稱為 word 的字符串。例如要在檔案內搜尋 vbird 這個字符串,就輸入 /vbird 即可! (常用)

?word

向光標之上尋找一個字符串名稱為 word 的字符串。

n

這個 n 是英文按鍵。代表『重復前一個搜尋的動作』。舉例來說, 如果剛剛我們執行 /vbird 去向下搜尋 vbird 這個字符串,則按下 n 后,會向下繼續搜尋下一個名稱為 vbird 的字符串。如果是執行 ?vbird 的話,那么按下 n 則會向上繼續搜尋名稱為 vbird 的字符串!

N

這個 N 是英文按鍵。與 n 剛好相反,為『反向』進行前一個搜尋動作。 例如 /vbird 后,按下 N 則表示『向上』搜尋 vbird 。

使用 /word 配合 n N 是非常有幫助的!可以讓你重復的找到一些你搜尋的關鍵詞!

:n1,n2s/word1/word2/g

n1 n2 為數字。在第 n1 n2 行之間尋找 word1 這個字符串,并將該字符串取代為 word2 !舉例來說,在 100 200 行之間搜尋 vbird 并取代為 VBIRD 則:
:100,200s/vbird/VBIRD/g』。(常用)

:1,$s/word1/word2/g

從第一行到最后一行尋找 word1 字符串,并將該字符串取代為 word2 !(常用)

:1,$s/word1/word2/gc

從第一行到最后一行尋找 word1 字符串,并將該字符串取代為 word2 !且在取代前顯示提示字符給用戶確認 (confirm) 是否需要取代!(常用)

刪除、復制與貼上

x, X

在一行字當中,x 為向后刪除一個字符 (相當于 [del] 按鍵), X 為向前刪除一個字符(相當于 [backspace] 亦即是退格鍵) (常用)

nx

n 為數字,連續向后刪除 n 個字符。舉例來說,我要連續刪除 10 個字符, 10x』。

dd

刪除游標所在的那一整列(常用)

ndd

n 為數字。刪除光標所在的向下 n 列,例如 20dd 則是刪除 20 (常用)

d1G

刪除光標所在到第一行的所有數據

dG

刪除光標所在到最后一行的所有數據

d$

刪除游標所在處,到該行的最后一個字符

d0

那個是數字的 0 ,刪除游標所在處,到該行的最前面一個字符

yy

復制游標所在的那一行(常用)

nyy

n 為數字。復制光標所在的向下 n 列,例如 20yy 則是復制 20 (常用)

y1G

復制游標所在列到第一列的所有數據

yG

復制游標所在列到最后一列的所有數據

y0

復制光標所在的那個字符到該行行首的所有數據

y$

復制光標所在的那個字符到該行行尾的所有數據

p, P

p 為將已復制的數據在光標下一行貼上,P 則為貼在游標上一行! 舉例來說,我目前光標在第 20 行,且已經復制了 10 行數據。則按下 p 后, 10 行數據會貼在原本的 20 行之后,亦即由 21 行開始貼。但如果是按下 P 呢? 那么原本的第 20 行會被推到變成 30 行。 (常用)

J

將光標所在列與下一列的數據結合成同一列

c

重復刪除多個數據,例如向下刪除 10 行,[ 10cj ]

u

復原前一個動作。(常用)

[Ctrl]+r

重做上一個動作。(常用)

這個 u [Ctrl]+r 是很常用的指令!一個是復原,另一個則是重做一次~ 利用這兩個功能按鍵,你的編輯,嘿嘿!很快樂的啦!

.

不要懷疑!這就是小數點!意思是重復前一個動作的意思。 如果你想要重復刪除、重復貼上等等動作,按下小數點『.』就好了! (常用)

 

一般模式進入編輯模式的按鍵說明: 

i, I

進入插入模式(Insert mode)
i
為『從目前光標所在處插入』, I 為『在目前所在行的第一個非空格符處開始插入』。 (常用)

a, A

進入插入模式(Insert mode)
a
為『從目前光標所在的下一個字符處開始插入』, A 為『從光標所在行的最后一個字符處開始插入』。(常用)

o, O

進入插入模式(Insert mode)
這是英文字母 o 的大小寫。o 為『在目前光標所在的下一行處插入新的一行』; O 為在目前光標所在處的上一行插入新的一行!(常用)

r, R

進入取代模式(Replace mode)
r
只會取代光標所在的那一個字符一次;R會一直取代光標所在的文字,直到按下 ESC 為止;(常用)

上面這些按鍵中,在 vim 畫面的左下角處會出現『–INSERT–』或『–REPLACE–』的字樣。 由名稱就知道該動作了吧?。√貏e注意的是,我們上面也提過了,你想要在檔案里面輸入字符時, 一定要在左下角處看到 INSERT REPLACE 才能輸入喔!

[Esc]

退出編輯模式,回到一般模式中(常用)

一般模式切換到命令行模式的按鍵說明:
















:w

將編輯的數據寫入硬盤檔案中(常用)

:w!

若文件屬性為『只讀』時,強制寫入該檔案。不過,到底能不能寫入, 取決于當前用戶對于文件的權限,一般情況下文件的所有者以及root用戶的權限較大。

:q

離開 vim (常用)

:q!

若曾修改過檔案,又不想儲存,使用 ! 為強制離開不儲存檔案。

注意一下啊,那個驚嘆號 (!) vim 當中,常常具有『強制』的意思~

:wq

儲存后離開,若為 :wq! 則為強制儲存后離開 (常用)

ZZ

這是大寫的 Z 喔!若檔案沒有更動,則不儲存離開,若檔案已經被更動過,則儲存后離開!

:w [filename]

將編輯的數據儲存成另一個檔案(類似另存新檔)

:r [filename]

在編輯的數據中,讀入另一個檔案的數據。亦即將 filename 這個檔案內容加到游標所在行后面

:n1,n2 w [filename]

n1 n2 的內容儲存成 filename 這個檔案。

:! command

暫時離開 vim 到指令列模式下執行 command 的顯示結果!例如
:! ls /home』即可在 vim 當中察看 /home 底下以 ls 輸出的檔案信息!

vim 環境的變更

:set nu

顯示行號,設定之后,會在每一行的前綴顯示該行的行號

:set nonu

set nu 相反,為取消行號!

以上都是鳥哥書上的表格,為了方便查詢,這里摘過來了。

vim的塊選擇

vim中進行的操作一般都是以行或者單個字符作為對象,那么要進行一個區域塊的操作該怎么辦呢?這時可使用vim的塊選擇功能。按下(不需要長按)v在再使用上下左右鍵移動光標,光標經過的地方將會被選中。

還有其他兩種選擇方式:

V(大寫):光標經過的行將會被選中。

ctrl+v:光標經過的長方形塊將會被選中。

Vim和nano的區別

選中后再按下y可對選中的區域進行復制,按下d可將選中的區域刪除。

多窗口功能

在命令行模式下輸入sp{filename}”即可使用多窗口功能。filename可以不用加,如果想在新的窗口下啟動另一個文件就需要加上filename,否則出現在窗口中的是同一個文件。

Vim和nano的區別

重要熱鍵

按住Ctrl + W,然后再加上h, j, k, l,分別表示向左、下、上、右移動窗口

Ctrl + w + h:向左移動窗口

Ctrl + w + j: 向下移動窗口

Ctrl + w + j: 向上移動窗口

Ctrl + w + l: 向右移動窗口

Ctrl + w + w:這個命令會在所有窗口中循環移動

Ctrl + w + t:移動到最左上角的窗口

Ctrl + w + b:移動到最右下角的窗口

Ctrl + w + p:移動到前一個訪問的窗口

 

原創文章,作者:poetic snow,如若轉載,請注明出處:http://www.www58058.com/83952

(7)
poetic snowpoetic snow
上一篇 2017-08-05
下一篇 2017-08-05

相關推薦

  • Linux 網絡管理

    Linux 網絡管理 第一篇:計算機網絡基礎: 一、計算機網絡: 1.TCP/IP:協議棧(使用中的模型)     ISO(國際標準化組織):OSI(開放系統互聯基本參考模型),學習中的模型。           1)各層之間的相關協議和單位:     互聯網…

    Linux干貨 2016-09-06
  • shell腳本之批量添加用戶

        沒錯,這是一個簡單的腳本,不寫不知道,寫了才發現自己多垃圾。     我是一名普通的公司網絡管理,接觸linux不長,一直理想都是和馬哥學習linux,可惜因為拖家帶口的原因,沒辦法交學費和馬哥學習,心里小小遺憾吧。每天看著馬哥的文章以及百度搜索的視頻文章學習,感覺自己學…

    Linux干貨 2016-07-07
  • echo命令的簡單用法和實例

        在CentOS 6.8版本下,通過實例的形式,展現選項和參數的靈活運用,可以簡明的了解echo的用法。 一、語法:echo [SHORT-OPTION]… [STRING]…??;echo [選項]…[參數]       作用:將需要的內容輸出到終端或者其他文件。 二、實例和選項參數的用法: (1)文本…

    Linux干貨 2017-03-27
  • Linux運維學習歷程-第六天-Linux用戶、組以及權限管理

    本章內容    Linux的安全模型    用戶和組    用戶和組管理命令    文件權限    默認權限    特殊權限    ACL訪問控制 一:3A認證       &nb…

    Linux干貨 2016-08-07
  • linux中數組的定義與使用

            我們常說,程序=指令+數據,往細一點的方向說,指令具體指的有哪些?數據又有哪些? 總結一下: 指令大概包括,編程語言中的語法關鍵字(如bash編程中的關鍵字有for,while,case,if,until,continue,break),還包括系統中的命令,和一些自己編寫的函數,這些…

    2017-05-23
  • 每天一個Linux命令

        程序管理:      程序的組成部分:二進制程序文件,庫文件,配置文件,幫助文件。                      二進制和庫文件可執行,庫文件不能獨立執行,只能被調用時執…

    Linux干貨 2017-04-08
欧美性久久久久