Linux中國

如何在 Vim 中進行文本選擇操作和使用標誌

在此之前需要說明的是,本教程中所提到的例子、命令和指令都是在 Ubuntu 16.04 的環境下測試的。Vim 的版本是 7.4。

Vim 的文本選擇功能

我們假設你已經具備了 Vim 編輯器的基本知識(如果沒有,可以先閱讀這篇文章)。你應該知道,d 命令能夠剪切/刪除一行內容。如果你想要剪切 3 行的話,可以重複命令 3 次。不過,如果需要剪切 15 行呢?重複 d 命令 15 次是個實用的解決方法嗎?

顯然不是。這種情況下的最佳方法是,選中你想要剪切/刪除的行,再運行 d 命令。舉個例子:

假如我想要剪切/刪除下面截圖中 INTRODUCTION 小節的第一段:

Text edited in VIM

那麼我的做法是:將游標放在第一行的開始,(確保退出了 Insert 模式)按下 V(即 Shift+v)命令。這時 Vim 會開啟視圖模式,並選中第一行。

Select a line with VIM

現在,我可以使用方向鍵「下」,來選中整個段落。

Select multiple lines with Vim

這就是我們想要的,對吧!現在只需按 d 鍵,就可以剪切/刪除選中的段落了。當然,除了剪切/刪除,你可以對選中的文本做任何操作。

這給我們帶來了另一個重要的問題:當我們不需要刪除整行的時候,該怎麼做呢?也就是說,我們剛才討論的解決方法,僅適用於想要對整行做操作的情況。那麼如果我們只想刪除段落的前三句話呢?

其實也有相應的命令 - 只需用小寫 v 來代替大寫 V 即可。在下面的例子中,我使用 v 來選中段落的前三句話:

Select the first three sentences in Vim

有時候,你需要處理的數據由單獨的列組成,你的需求可能是選擇特定的一列。考慮下面的截圖:

Columns in Vom

假設我們只需選擇文本的第二列,即國家的名字。這種情況下,你可以將游標放在這一列的第一個字母上,按 Ctrl+v 一次。然後,按方向鍵「下」,選中每個國家名字的第一個字母:

Select the first char of a column

然後按方向鍵「右」,選中這一列。

Select a whole column in Vim

小竅門:如果你之前選中了某個文本塊,現在想重新選中那個文本塊,只需在命令模式下按 gv 即可。

使用標誌

有時候,你在處理一個很大的文件(例如源代碼文件或者一個 shell 腳本),可能想要切換到一個特定的位置,然後再回到剛才所在的行。如果這兩行的位置不遠,或者你並不常做這類操作,那麼這不是什麼問題。

但是,如果你需要頻繁地在當前位置和一些較遠的行之間切換,那麼最好的方法就是使用標誌。你只需標記當前的位置,然後就能夠通過標誌名,從文件的任意位置回到當前的位置。

在 Vim 中,我們使用 m 命令緊跟一個字母來標記一行(字母表示標誌名,可用小寫的 a - z)。例如 ma。然後你可以使用命令 'a (包括左側的單引號)回到標誌為 a 的行。

小竅門:你可以使用「單引號」 ' 來跳轉到標誌行的第一個字元,或使用「反引號」 ``` 來跳轉到標誌行的特定列。

Vim 的標誌功能還有很多其他的用法。例如,你可以先標記一行,然後將游標移到其他行,運行下面的命令:

d'[標誌名]

來刪除當前位置和標誌行之間的所有內容。

在 Vim 官方文檔中,有一個重要的內容:

每個文件有一些由小寫字母(a-z)定義的標誌。此外,還存在一些由大寫字母(A-Z)定義的全局標誌,它們定義了一個特定文件的某個位置。例如,你可能在同時編輯十個文件,每個文件都可以有標誌 a,但是只有一個文件能夠有標誌 A

我們已經討論了使用小寫字母作為 Vim 標誌的基本用法,以及它們的便捷之處。下面的這段摘錄講解的足夠清晰:

由於種種局限性,大寫字母標誌可能乍一看不如小寫字母標誌好用,但它可以用作一種快速的文件書籤。例如,打開 .vimrc 文件,按下 mV,然後退出。下次再想要編輯 .vimrc 文件的時候,按下 'V 就能夠打開它。

最後,我們使用 delmarks 命令來刪除標誌。例如:

:delmarks a

這一命令將從文件中刪除一個標誌。當然,你也可以刪除標誌所在的行,這樣標誌將被自動刪除。你可以在 Vim 文檔 中找到關於標誌的更多信息。

總結

當你開始使用 Vim 作為首選編輯器的時候,類似於這篇教程中提到的功能將會是非常有用的工具,能夠節省大量的時間。你得承認,這裡介紹的文本選擇和標誌功能幾乎不怎麼需要學習,所需要的只是一點練習。

via: https://www.howtoforge.com/tutorial/how-to-use-markers-and-perform-text-selection-in-vim/

作者:Himanshu Arora 譯者:Cathon 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國