整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          用 nano 和 vim 編寫文本:文本編輯新紀元

          本編輯器是程序員和作家的必備工具,它們使我們能夠以高效和直觀的方式創建和修改文本文件。在這個數字化時代,文本編輯器已經發展到了一個新的階段,它們不僅僅是簡單的文本輸入工具,而是成為了功能強大的創作和編程平臺。在眾多文本編輯器中,nano和vim是兩個非常受歡迎的選擇,它們各有特點,適用于不同的使用場景和用戶需求。

          nano:初學者的友好選擇

          nano是一個簡單易用的文本編輯器,它以其簡潔的界面和直觀的操作而受到初學者的喜愛。nano的界面非常清晰,頂部顯示文件名和行號,底部是命令行,提供了一些基本的編輯命令,如保存、退出等。

          基本使用

          1. 打開nano:在終端中輸入nano命令,后面跟上你想要編輯的文件名,例如:
          nano example.txt
          1. 編輯文本:使用鍵盤直接輸入文本。
          2. 保存文件:按下Ctrl + O,然后按回車鍵確認文件名,再按回車保存。
          3. 退出編輯器:按下Ctrl + X退出。

          高級功能

          • 搜索文本:按下Ctrl + W,輸入要搜索的文本,nano會高亮顯示所有匹配項。
          • 替換文本:按下Ctrl + 6,輸入要替換的文本和新文本。

          vim:高級用戶的利器

          vim是一個功能極其強大的文本編輯器,它不僅支持基本的文本編輯功能,還提供了豐富的插件系統和高度可定制的配置選項。vim的學習曲線相對較陡,但它的效率和靈活性是其他編輯器難以比擬的。

          基本使用

          1. 打開vim:在終端中輸入vim命令,后面跟上文件名,例如:
          vim example.txt
          1. 進入插入模式:按i進入插入模式,開始編輯文本。
          2. 保存并退出:按下Esc退出插入模式,然后輸入:wq保存并退出。

          高級功能

          • 多模式編輯:vim有多種模式,如普通模式、插入模式、命令模式等,每種模式都有不同的功能。
          • 宏錄制:通過q記錄宏,@播放宏,可以重復執行一系列復雜的命令。
          • 分屏編輯:使用:split或:vsplit命令可以在同一個窗口中查看和編輯多個文件。

          插件系統

          vim的插件系統允許用戶根據自己的需求添加功能。例如,vim-go插件為Go語言提供了語法高亮、自動補全等特性。

          實際應用示例

          假設你是一名Web開發者,需要編輯一個HTML文件。使用nano,你可以快速打開并編輯文件,而使用vim,你可以利用其強大的插件系統,如vim-polyglot,來獲得HTML、CSS、JavaScript等多種語言的語法支持。

          <!-- 使用 nano 編輯的 HTML 文件 -->
          <!DOCTYPE html>
          <html>
          <head>
              <title>我的網頁</title>
          
          </head>
          
          <body>
              <h1>歡迎來到我的網站</h1>
          
              <p>這是一個示例段落。</p>
          
          </body>
          
          </html>
          
          <!-- 使用 vim 編輯的 HTML 文件,可能已經應用了 vim-polyglot 插件 -->
          <!DOCTYPE html>
          <html>
          <head>
              <title>我的網頁</title>
          
              <link rel="stylesheet" href="styles.css">
          </head>
          
          <body>
              <!-- 利用 vim 的語法高亮 -->
              <h1 class="title">歡迎來到我的網站</h1>
          
              <p id="intro">這是一個示例段落,具有 CSS 類和 ID。</p>
          
              <script src="scripts.js"></script>
          
          </body>
          
          </html>
          

          通過這些示例,我們可以看到,無論是對于初學者還是高級用戶,nano和vim都能提供強大的文本編輯功能。選擇哪一個取決于你的個人偏好、使用場景以及你愿意投入學習的時間。隨著時間的推移,你可能會發現自己更傾向于使用其中一個,或者根據不同的任務選擇使用不同的編輯器。

          篇文章介紹一些 vim 使用技巧:

          • 把外部shell命令的執行結果寫入文件
          • 使用vim將文件轉出html格式

          把外部shell命令的執行結果寫入文件

          在 vim 中,可以使用 :r !cmd 命令執行 shell 中的 cmd 命令,并把該命令的打印結果寫入到當前光標的下一行。

          例如,:r !date 命令執行 shell 的 date 命令,打印當前的時間,把這個打印結果寫入到當前光標的下一行。

          也可以在 r 命令的前面加上數字指定要寫入到哪一行之后,而不是寫入到當前光標的下一行。

          例如,:2r !date 命令是把打印結果寫入到第二行的后面,也就是寫入到第三行,原先第三行會挪到第四行,后面的內容依此類推。

          注意:如果不加感嘆號 ‘!’,那么后面跟著的參數會被認為是文件名,如果存在該文件,會讀取該文件內容,寫入到當前光標的下一行。如果該文件不存在,則報錯提示找不到文件。例如, :r date 命令是讀取名為 date 的文件內容,寫入到當前光標的下一行。

          這里的 :r :read 命令的縮寫。

          在 vim 中,用 :help :r 命令查看 :r !cmd:r name 命令的幫助說明。部分關鍵說明如下:

          :r[ead] [++opt] [name]
          Insert the file [name] (default: current file) below the cursor.

          :{range}r[ead] [++opt] [name]
          Insert the file [name] (default: current file) below the specified line.

          :[range]r[ead] !{cmd}
          Execute {cmd} and insert its standard output below the cursor or the specified line.

          使用vim將文件轉出html格式

          在 vim 中,可以使用 :TOhtml 命令來將當前文件轉換出 html 格式文件。注意這個命令的大小寫,不能寫為 :tohtml 的形式。

          :TOhtml 命令基于整個文件內容轉成一個新的 html 文件,拆分新的 vim 水平窗口顯示轉換后的 html 文件內容。如有需要,可以自行修改文件內容做一些調整。最后,保存該 html 文件即可。

          注意:這個 html 文件需要在 vim 中保存后才會生成本地文件,:TOhtml 命令并沒有直接生成本地的 html 文件,也不會修改原有文件本身的內容,而是生成新的 html 文件。

          如果只是需要轉某幾行代碼(例如30行到42行),則執行 :30,42TOhtml 命令。

          如果當前 vim 配置成顯示行號,所轉換出來的 html 文件中也會帶有行號。不想帶有行號的話,可以在轉換之前,先執行 :set nonu 命令設置為不顯示行號。

          文收集了一些簡單的 VIM 操作,這些操作要么其它普通文本編輯器不能完成,要么完成起來很慢。通過本文的介紹,可以堅定初學者學習 VIM 的決心與信心。如果你有什么好的易于演示的簡易技巧,歡迎留言。另外,如果沒有明確說明,本文中的提到的按鍵均是大小寫敏感的。例如,文中提到“按下 G”時,你按的鍵應該是“Shift + G”。

          1. 準備工作

          首先,我們打開 VIM,輸入一段文本,用于今天的演示:

          this is a test
          

          2. 查找替換

          按幾下 ESC 進入 Normal 模式,輸入以下命令::%s/ /\r/g/ ?;剀嚭蟮玫降男Ч缦拢?/p>

          this
          is
          a
          test
          

          解說:這條命令的作用是,將文章中所有的空格替換為回車。幾乎所有的編輯器都支持查找替換,但并不是所有的編輯器都支持把空格替換為回車,因此這個功能在許多別的編輯器里做起來是比較繁瑣的。

          3. 行的拼接

          剛才我們把一行文字打碎為 4 行了,那如何再把它們拼接起來呢?當然,我們可以通過前面說的查找替換的方式,將回車再替換為空格,實現行的拼接。但是,這里我們用的是另一種方式。

          按幾下 ESC 進入 Normal 模式,然后輸入這段命令:ggVG。gg 表示跳到文本開頭,V 表示進入行選擇模式,G 表示選擇到文章末尾。通過這 3 條命令,總共 4 個按鍵,我們選中了整篇文章。

          然后,按下冒號 : 進入命令模式,狀態欄上出現::'< ,'>字樣,在它后面輸入 j,然后回車,可以看到,整篇文章又被拼接起來了,整個操作包括回車只按了 7 次鍵:

          this is a test
          

          4. 復制粘貼與重復動作

          按幾下 ESC 確認當前處在 Normal 模式下,然后按 yy,即可將當前行復制到默認寄存器中(相當于剪貼板)。然后按下 12p,VIM 將執行粘貼動作 12 次,屏幕上出現了 13 行這樣的字符:

          this is a test
          this is a test
          this is a test
          this is a test
          this is a test
          this is a test
          this is a test
          this is a test
          this is a test
          this is a test
          this is a test
          this is a test
          this is a test
          

          解說:在 VIM 中,復制和粘貼操作相當快捷。另外,VIM 中大部分命令都可以通過在命令前加數字重復若干遍。

          5. 列操作

          接下來我們把每一行的開頭第一個字母改為大寫。

          按幾下 ESC 確認當前處在 Normal 模式下,然后按 gg 跳到第一行,按下 Ctrl + v進入列選擇模式(如果你按下 Ctrl + v 沒能進入列選擇模式,請看這里),然后按 G,跳到文章最后一行,此時你應該看到,文本的第一列被選中了,而且只選中了第一列。按下 U 鍵,可以看到,每行的第一個字母都變為大寫了。提示:選中文本后按 u 可以將文本變為小寫,選中文本后按 ~ 可以翻轉原有的大小寫。

          This is a test
          This is a test
          This is a test
          This is a test
          This is a test
          This is a test
          This is a test
          This is a test
          This is a test
          This is a test
          This is a test
          This is a test
          This is a test
          

          然后,我們在每行的前面加上一個星號。按下 gg 跳到第一行,按 Ctrl + v 進入列選擇模式,再按 G,選中全文的第一列,然后按 I,進入列插入狀態,輸入星號 *,再按下 ESC,你會看到,所有行之前都出現了一個星號:

          *This is a test
          *This is a test
          *This is a test
          *This is a test
          *This is a test
          *This is a test
          *This is a test
          *This is a test
          *This is a test
          *This is a test
          *This is a test
          *This is a test
          *This is a test
          

          解說:對于編寫程序的人來說,把一段代碼批量注釋掉是一個很常見的操作,使用列插入可以很容易地做到這一點。另外,列選擇后按 x 刪除被選中的塊,可以批量地解除注釋。

          6. 宏的錄制

          接下來,我們要將文本的偶數行修改為:This is another test。由于所有的偶數行都要進行同樣的操作,因此我們把這個操作錄制下來,然后重復播放若干遍,就能很快地完成這項工作了。

          首先,按幾下 ESC 確認處在 Normal 模式下,再按下 gg 跳到第一行,準備開始操作。我們首先按下 q 鍵,然后再按一個其它字母,將這個宏錄制到該字母對應的寄存器下。例如我們這里使用 m 寄存器,則按 qm。此時 VIM 狀態欄出現“recording”字樣,表明已經進入了錄制狀態。

          然后,我們把第二行的 a 修改為 another。首先按 j 進入第二行,然后按 $ 跳到行末,再按兩下 b 往前跳兩個單詞,此時光標停在字母 a 上。然后我們按下 caw鍵刪除 a 并進入插入狀態,然后輸入 another ,按 ESC 回到 Normal 狀態,按 j 進入下一行,整個操作步驟就完成了。最后,我們再按一下 q,結束該宏的錄制。

          接下來我們播放這個宏,完成整個操作步驟。在鍵盤上輸入 1000@m,表示將 m 寄存器里的宏播放 1000 次,馬上可以看到,文章中所有偶數行的 a 都變成了 another。

          *This is a test
          *This is another test
          *This is a test
          *This is another test
          *This is a test
          *This is another test
          *This is a test
          *This is another test
          *This is a test
          *This is another test
          *This is a test
          *This is another test
          *This is a test
          

          解說:雖然我們指定播放 1000 次,但事實上,執行到第 6 次的時候,光標挪到了屏幕最下方,于是執行過程就自動停止了。因此,在批量操作的時候,我們可以指定足夠大的數字,而不用擔心出現問題。

          另外,修改 a 的時候,我們跳到行末后再使用 b 命令以單詞為單位跳轉,而沒使用 h 一個字母一個字母往回挪,我們使用caw 修改整個單詞,而不使用 s 命令刪除單個字母并進入 Insert模式。這些細節可以保證錄制得到的宏更具有一般性。

          7. 行尾塊操作

          注:本章由 Jason Han 網友貢獻,感謝他來信指出滇狐原先對于行尾塊操作理解的錯誤。

          下面,我們要在每行的尾部都添加一個感嘆號。之前我們在每行頭部添加一個星號的時候,用的是 Ctrl-V 列操作?,F在要在行尾添加,能不能繼續用列操作呢?直觀上似乎是不行的,每行的長度不一樣,行尾位置參差不齊,如何使用列模式往行尾添加東西呢?

          事實上,Vim 提供了一種特殊的列模式,叫做行尾塊模式,也就是說,我們是可以通過 Ctrl-V模式來選中長度不同的行的行尾,然后對行尾作統一操作的,操作步驟如下:

          按下 gg 跳到第一行,按 Ctrl-V 進入列選擇模式,再按 G,選中全文的第一列,然后按下 $,進入行尾塊模式,按下 A,進入塊插入狀態,輸入星號 !,再按下 ESC,你會看到,所有行尾部都出現了一個感嘆號:

          *This is a test!
          *This is another test!
          *This is a test!
          *This is another test!
          *This is a test!
          *This is another test!
          *This is a test!
          *This is another test!
          *This is a test!
          *This is another test!
          *This is a test!
          *This is another test!
          *This is a test!
          

          8. 點命令

          接下來,我們在每行的末尾加上一個小于號 < 。每行下面插入一個新行,寫上一個大于號 >。

          由于我們需要在每行后面添加新行,因此我們無法使用塊選擇方式批量添加小于大于號。使用宏錄制的方式是可以做到這點的,但操作稍嫌繁瑣了一些。使用點命令,可以非常方便地做到這一點。

          先按幾下 ESC 確認當前出于 Normal 模式,然后使用 gg 跳到第一行,按 A 進行行尾插入,輸入 < ,然后按下回車,輸入 >,最后 ESC 回到 Normal 狀態,第一行修改就完成了。

          然后,我們按 j 進入下一行,也就是第三行,再按 .,可以看到,第三行尾部也出現了小于號,并且自動添加了第四行的大于號。反復按j.j.j. ,直到每一行都完成了這個編輯動作為止。

          *This is a test!<>
          *This is another test!<>
          *This is a test!<>
          *This is another test!<>
          *This is a test!<>
          *This is another test!<>
          *This is a test!<>
          *This is another test!<>
          *This is a test!<>
          *This is another test!<>
          *This is a test!<>
          *This is another test!<>
          *This is a test!<>
          

          解說:點命令的作用是,重復最近一次所做的編輯操作。由于在第一行里做的操作是行尾添加并插入新行,因此在第三行(原先的第二行)重復這個動作的時候,也會在行尾添加同樣的字符。點命令功能不如宏強大,但它使用起來比宏簡便,因此也有著廣泛的用途。

          原文來自:http://strongit.blog.51cto.com/10020534/1737269

          本文地址:https://www.linuxprobe.com/vim-advanced-operation.html


          主站蜘蛛池模板: 呦系列视频一区二区三区| 人妻在线无码一区二区三区| 日韩免费无码一区二区视频| 亚洲欧美日韩中文字幕一区二区三区 | 国产成人精品亚洲一区| 国产精品视频一区| 男人免费视频一区二区在线观看| 国产91精品一区| 精品视频在线观看你懂的一区 | 国产一区二区不卡老阿姨| 国产伦精品一区二区三区视频小说| 一区二区三区四区在线播放| 国产精品日本一区二区不卡视频| 精品无码一区二区三区爱欲九九| 国产香蕉一区二区三区在线视频| 一区在线免费观看| 无码精品黑人一区二区三区| 在线观看精品一区| 国产综合一区二区| 日韩AV无码一区二区三区不卡 | 亚洲Av无码国产一区二区| 一区在线免费观看| 国产日韩一区二区三区| 极品少妇伦理一区二区| 中文字幕一区二区精品区| 无码人妻久久一区二区三区蜜桃 | 亚洲日韩国产欧美一区二区三区| 波多野结衣在线观看一区二区三区 | 国内精自品线一区91| 亚州日本乱码一区二区三区| 精品女同一区二区三区在线| 久久免费区一区二区三波多野| 国产精品一区二区久久沈樵| 精品无人区一区二区三区 | 一区二区三区四区精品视频| 天天爽夜夜爽人人爽一区二区 | 国产一区二区在线观看麻豆| 精品日韩亚洲AV无码一区二区三区| 亚洲AV无码一区二三区| 夜夜精品视频一区二区| 一区二区三区四区免费视频|