成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

12 個關于 vim 的編輯技巧

系統 Linux
我經常使用 vim,也經常在各大社區、論壇看到 vim 專家用戶分享經驗,今天我們就總結其中常用的一部分,分享給大家。

vim 是一個很好用的編輯器,應用十分廣泛。但關于 vim,總有一些你不知道的事情,我們需要持續不斷的學習。

我經常使用 vim,也經常在各大社區、論壇看到 vim 專家用戶分享經驗,今天我們就總結其中常用的一部分,分享給大家。

1.使用內置幫助(built-in help)

使用 vim 的內置幫助是一個好習慣(雖然很多朋友更喜歡在網上搜索相關的使用方法)。查看幫助的語法如下表格所示:

前綴

例子

說明

:

:help :w

有關 :w 命令的幫助

none

:help j

有關“j”鍵在正常模式上下文中的幫助

v_

:help v_J

有關在上下文中使用“J”鍵到視覺模式的幫助

i_

:help i_<Esc>

有關在上下文中使用“Esc”鍵插入模式的幫助

/

:help /\n

有關搜索模式“\n”的幫助

2.以普通用戶身份打開,以 root 用戶身份保存

在編輯系統文件或者受權限保護的文件的時候,很容易會忘記在 vim 編輯之前添加 sudo,這樣將會以只讀模式打開文件,也就是編輯后不能保存。

但是這時候,你可能已經對文件做了一些修改(尚未保存),很顯然,強制退出不是一個好選擇。

圖片?

在這些情況下,在 vim 中鍵入以下命令:

:w !sudo tee

鍵入此命令后,將要求您輸入sudo命令的密碼,然后文件就可以保存了。

注:我們應該使用 sudoedit 命令而不是 sudo vim 來編輯需要超級用戶權限的文件。

我們將上述命令拆解來看下:

  • :w - 這是寫入命令。由于沒有給出參數,vim 將把整個文件寫入標準輸出;
  • !sudo - 將 sudo 命令作為 shell 命令而不是 vim 命令運行;
  • tee -? tee命令?用于讀取標準輸入并將其寫入標準輸出或文件;
  • % - vim 將其替換為您正在編輯的當前文件的名稱。

:w 命令將整個文件寫入 STDOUT(標準輸出);然后,我們使用sudo命令(因為我們編輯的畢竟是一個系統文件)來獲得臨時權限。

百分號(%)表示文件名,tee 命令從 STDOUT 獲取 vim 的輸出并將其寫入 % 文件。

這基本上適用于 <Vim's STDOUT> | sudo tee /etc/ssh/sshd_config,有點復雜...

3.將所有空格轉為制表符(或者反過來)

我們都喜歡使用制表符(tab)或者空格,但是,如果我們正在編輯的文本其縮進使用的符號正好與我們的習慣相反,該怎么辦?

3.1 將所有空格轉換為制表符

如果當前文件使用空格縮進文本,希望將它們轉換為制表符時,需要運行如下兩個 vim 命令:?

:set noexpandtab:retab!

這樣做會將所有空格轉換為其等效的制表符。如果文檔使用兩個空格作為縮進寬度,它們將轉換為1個制表符。如果 4 個空格用作單個縮進寬度時,這 4 個制表位將替換為 1 個制表字符。

3.2 將所有制表符轉換為空格

如果要編輯的文件使用制表符縮進,并且要將制表符轉換為空格,則需要運行如下4個 vim 命令:?

:set:set tabstop=4:set shiftwidth=4:retab

第一個命令(expandtab)告訴 vim 使用空格展開 tab,第二個命令(tabstop)設置使用多少個空格用作一個“縮進塊”。

在我們的例子中,我們定義了“1個tab=4個空格”;當使用>>運算符時,shiftwidth 命令用于控制縮進,這也被設置為4個空格。

最后,retab 命令將所有制表符(用于縮進)轉換為空格。

4.縮進所有行

錯誤的縮進,在 python 或者 YAML 程序中會報錯,導致程序不能正確運行。

要縮進所有行,按 gg 鍵到達文件頂部,然后按 = 鍵表示“縮進”,最后按 G 鍵表示到“最后一行”。

這樣將會自動縮進,從第一行到最后一行。

如下圖所示,我使用 :gg=G命令縮進的演示:

圖片


正如你所看到的(從這個有限的預覽中),所有行都正確縮進。

5.粘貼代碼時保留縮進

我們都有過在互聯網上復制代碼的時候。當將代碼粘貼到文件中時,縮進都給弄亂了,這時候需要怎樣做呢?

為了避免這種情況,請在 .vimrc 文件中添加以下代碼:

set pastetoggle=<F2>

vimrc 文件進行如上更改后,在粘貼代碼之前按 F2 鍵,這樣做將確保代碼粘貼正確的縮進。

6.以正確的縮進深度開始書寫

假設光標在第一行第一列,但是所要寫的內容需要縮進,那在不按下制表符(tab)和空格鍵的情況下,應該怎樣做呢?

答案是在正常模式下按下 S 鍵。

當光標位于行的第一列時,按 Esc 鍵進入正常模式。然后按 S(大寫)鍵,這會將光標移動到適當的縮進深度,并自動進入“插入”模式,以便開始鍵入。

圖片


上圖,我的光標位于第一列,通過按S鍵,光標移動到正確的縮進深度,Vim從正常模式切換到插入模式。

7.保存文件前顯示差異

我們可能遇到過這樣的情況:我修改了這個文件,但是忘記都做了哪些修改了,并且我擔心其中有些地方可能修改錯了。

解決此問題的方法是查看緩沖區和文件之間的差異。可在 vim 中執行如下命令:

:w !diff % -

我們將上述命令拆解來看:

  • :w  用于保存/寫入,在這個特定場景中,如果命令中沒有指定文件名,則輸出將寫入STDIN(標準輸入)文件;
  • :!<command>  是執行 shell 命令的語法,在這個例子中,我們在 shell 中運行 diff 命令;
  • 表示未修改的當前文件的名稱;試試這個::!echo %
  • - 是 diff 命令的 STDIN 文件。

因此,該命令首先將所有[未保存]內容寫入STDIN文件。然后diff命令讀取當前文件(%)并將其與STDIN(-)文件進行比較。

這個命令大致等同于這個shell命令:diff <original-file> <Vim's STDOUT>

8,顯示拼寫錯誤

我們應該都使用過 Microsoft word,其拼寫檢查器在拼寫錯誤的單詞下會有一條紅色的波浪線。

vim 也內置了拼寫檢查器,但默認情況下是關閉的。我們可以使用如下命令啟用它:

:set

這樣,你可能會看到拼寫錯誤的單詞被突出顯示,其突出顯示的方式取決于你的 vim 顏色方案。我在拼寫錯誤的單詞下面有一條白色下劃線,如下圖所示:

圖片

要將這設置為 vim 的默認,可在 .vimrc 文件中添加如下配置:

set

9.顯示行號

與許多 vim 用戶一樣,你可能喜歡在 vim 中顯示行號。

有兩種方法可以顯示行號。一種是絕對行編號,在這種情況下,每行顯示絕對行號,就像任何其他代碼編輯器或IDE一樣。

第二種是相對行號。在這種情況下,當前行的行號為0,其他行的行號為相比于光標所在行的相對數字。

這兩種情況,也并不是只能選擇一個,事實上,可以兩種都要。

通過在 .vimrc 中添加以下行,可以在 vim 中啟用“混合行編號”:

set number

這將在光標所在行顯示絕對行號,在其他行顯示相對行號。如下圖所示:

圖片

當前光標位于第44行,因此該行顯示絕對行號;其他行(光標上方和下方的行)顯示相對行號。

10.使用 vim 打開文件的同時將光標定位在某一行

默認情況下,我們使用 vim 打開文件,光標總會在第一行。在某些時候,我們希望光標能夠定位在我們指定的某一行,而不是第一行。

可以通過使用 +n(n為行號)選項來實現這一點,當然前提是你需要知道打開的文件總行數應大于或等于 n,如下:

vim +n <file-name>

11.使用可讀的配色方案

當談到使用配色方案時,人們通常會選擇他們覺得最吸引人或最美觀的配色方案。但是,當你作為一個代碼編輯器兼 IDE 的 vim 時,最好放棄一些引人注目的東西,轉而使用具有更好視覺指導的配色方案。

一個好的配色方案看起來很好,但是一個優秀的配色可以幫助你在顏色的幫助下輕松識別關鍵詞、變量和其他標識符。

當然,每個人的喜好是不同的,配色當然也是不同的。我們在下圖中貼出幾個大家都覺得順眼的方案,可以作為參考:

圖片

圖片

圖片

12.在插入模式下刪除文本

我們都知道,在正常模式(normal mode)下,可以使用 d x 鍵刪除文本,那么在插入模式下如何執行相同的操作(比如 dd)呢?

以下是常用的一些方案:

  • ctrl + w 刪除前一個單詞(字)(相當于正常模式下的 db);
  • ctrl + h 刪除前一個字符;
  • ctrl  + u 刪除當前行所有前面的字符(相當于正常模式下的 d0 );
  • ctrl  + k 刪除當前行中所有主要字符(相當于正常模式下的 d$)。
責任編輯:龐桂玉 來源: TIAP
相關推薦

2015-08-04 10:51:26

vim效率技巧

2024-05-28 14:45:00

2011-02-21 14:10:46

Vim編輯

2013-09-10 10:34:49

PowerShell

2024-01-03 14:54:56

PythonPandas數據處理工具

2022-08-28 23:51:04

編輯器vim代碼

2023-12-19 13:31:00

CSS前端技巧

2024-02-26 08:20:00

CSS開發

2012-06-28 15:57:08

Hadoop

2010-08-18 09:19:34

Vim編輯器Vim 7.3

2011-04-07 16:46:09

Solaris

2019-08-30 14:25:03

Vim命令Linux

2023-07-24 15:24:00

前端CSS 技巧

2025-01-14 00:01:01

2022-03-10 08:01:06

CSS技巧選擇器

2017-03-13 13:32:39

LinuxVim技巧

2020-06-23 08:28:26

前端開發技巧

2016-05-10 10:16:13

JavaScript技巧

2022-11-24 10:34:05

CSS前端

2024-06-11 00:09:00

JavaScript模式變量
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久y| 国产区在线观看 | 国产福利视频在线观看 | 久久久国产一区 | 久久精品在线 | 91综合网 | 一级在线观看 | 日韩色综合 | 在线伊人网| 欧美jizzhd精品欧美巨大免费 | 中文字幕免费观看 | 欧美精品国产一区二区 | 欧洲视频一区二区 | 久草网址 | 一区二区中文 | 亚洲欧美中文日韩在线v日本 | 亚洲免费视频网址 | 一区二区三区亚洲精品国 | 自拍偷拍亚洲一区 | 中文字幕欧美日韩 | 中文字幕精品一区 | 欧美日韩综合精品 | 国产日韩亚洲欧美 | 伦理二区 | 天天操妹子 | 亚洲精品综合一区二区 | 亚洲电影一级片 | 欧美一级www片免费观看 | 国产观看 | 国产精品a久久久久 | 青青久久av北条麻妃海外网 | 欧美成人一区二区三区 | 亚洲3级 | h在线看 | 国产成人精品免费视频 | 狠狠久 | 本道综合精品 | 嫩草视频入口 | 国产精品无码专区在线观看 | 亚洲精品国产成人 | 99在线免费观看 |