每天學習一點新東西 vim篇(一)

2021-07-03 15:15:51 字數 2797 閱讀 4460

作為程式設計師來說,編輯器vim和emacs是不可不了解的。一直聽說vim的強大,但困於一直用window系統,而寫**也找到了sublime text3這樣優秀的編輯器,所以沒有學的慾望。從另一方面來說,接觸到好多ide都整合的命令列模式,可見仍有學習的必要。因此打算每天學習一些,包括但不限於vim,以後也可能會學習其他工具或者語言。總之,每天學習一點新的東西,樂此不疲。

從命令列執行vim:vim

命令列模式開啟乙個檔案:vim file.txt,有則開啟,無則建立

開啟後,可以看到每行前都有個波浪號,表示這行不在檔案中。

vim的工作模式

命令模式,插入模式和visual模式

剛開啟vim是處於命令模式,按i鍵後進入插入模式,左下角有insert字樣,可以是輸入內容,退回命令模式是按esc鍵。

在命令模式下,移動游標可用h(左)j(下)k(上)l(右)來移動,最快捷。

刪除當前字元:x

刪除一行:dd

撤銷最近的一次操作:u

恢復最近的一次撤銷操作:ctrl+r

儲存當前檔案並退出:zz

退出但不儲存::q!

如果知識看了檔案但沒有修改,那麼可以省去上面命令的

a //在當前游標位置的右邊新增文字

i //在當前游標位置的左邊新增文字

a //在當前行的末尾位置新增文字

i //在當前行的開始處新增文字(非空字元的行首)

o //在當前行的上面新建一行

o //在當前行的下面新建一行

r //替換(覆蓋)當前游標位置及後面的若干文字

j //合併游標所在行及下一行為一行(依然在命令模式)

獲取幫助資訊:

:help

:help subject:獲取某一命令的幫助

有時,同乙個快捷鍵在不同模式時代表不同的命令,vim 預設認為查詢的是命令模式下的那個命令。可以加上字首來區分不同的模式。i_ 表示插入模式。v_ 表示visual模式。: 表示ex模式。比如下面的例子:

:help i_ctrl-h

:help :quit

類似的,2w表示向後移動兩個單詞

移動到一行的行尾:$

移動到一行的開始:home

移動到一行的第乙個非空白字元:^

一行中進行查詢字元

從當前位置向後查詢第一次出現x的位置,並移動游標:fx

從當前位置向前查詢第一次出現x的位置,並移動游標:fx

若是沒有找到,不移動游標

類似的還有一對命令t與t。與f和f類似,不過它會停在查詢到的字元之前乙個字元

移動游標到指定的行

移動到指定的行n:ng

移動到最後一行:g

顯示行號::set numnber

隱藏行號::set nonumber

給出當前游標所在的行列資訊:ctrl+g

翻頁:

向下滾動半屏文字:ctrl+u

向上滾動半屏文字:ctrl+d

刪除文字

刪除一行:dd

從當前位置刪除到當前單詞結束(連空格):dw

w是將游標移動到下乙個單詞的開始位置。

類似的,刪除3個單詞:3dw或者d3w

實際上,d命令後面可以跟著任意的游標移動命令,比如 dfi 表示從當前位置一直刪到第一次出現i為止。當然,如果當前行沒有找到i則上面的命令就什麼都不做,因為這時游標沒有移動。

改變當前字元的大小寫:~

遇到重複操作時,可以錄製一段鍵盤巨集:q命令

假設我們的檔案中有如下幾行。

stdio.h

fcntl.h

unistd.h

stdlib.h

我們希望將其編輯為:

include 「stdio.h」

include 」fcntl.h」

include 」unistd.h」

include 」stdlib.h」

首先將游標移動到第一行的開始。

然是輸入如下的命令:

qa ^

i#include 「

$ a」 j q

這樣就錄好了一段巨集,巨集名為a。

之後執行3次這個巨集:3@a

總結一下:目前認為比較重要的幾個命令:

移到行尾:$

移到行頭:home

移到行尾並插入:a

學習了一種新東西

名字叫 360兒童衛士!主要功能就是隨時定位孩子的位置,很實用的趕腳 來看看這款產品吧!利用高科技 雲端也能防兒童走失 雲計算 大資料是當下最為前沿的高科技,但是如果利用得當將會起到事半功倍的效果。比如孩子不小心走丟,究竟有多少種方法可以找回孩子?自己去找 廣告 報警等等,但是不客氣的說,這些方法效...

每天學習一點 Android

每天都變著花樣的學東西,今天呢,看了看android教程和一些android開 壇,先了解一下皮毛,再決定到底怎麼學習。anoid早期由 android之父 之稱的andy rubin創辦,google於2005年併購了成立僅22個月的高科技企業android,展開了簡訊 手機檢索 定位等業務,基於...

每天學習一點string h

面試中總會遇到實現類似strcpy,strlen功能的程式,所以需要注意積累,每天學習乙個函式!第一天,strcpy 方案一 char mystrcpy char strdes,const char strsrc 方案二 char mystrcpy char strdes,const char st...