前言:記得去年在亞洲區現場賽見過許多大牛不使ide而用vim,這兩天趁著使用ubuntu的興頭上,學學這傳說中的裝叉神器,翻出各種網頁學習,唉,才碰這玩意兒還真是難搞,要記好多好多的快捷鍵,不過聽介紹這會是使用者最後乙個使用的編輯器,傳說灰常的難學但是不可思議的好用,我大概已經領略到了前半句,相信這後半句在不久之後會實現吧~
在終端中輸入「$ vimtutor」,就會出現vim教程
以下是自己每天學到的一些命令和快捷鍵,做成筆記以備忘吧(不斷積累中):
1、vim分為兩種模式,開啟vim後發現啥也輸不進去,原來這是normal模式,此時的游標是粗黑的
想要輸入字元,按『 i 』進入insert模式,之後游標變成細條狀,左下角顯示「--插入--」,這時就可以輸入了。
在insert模式下,鍵盤上的鍵用來輸入;在normal模式下,鍵盤上所有的鍵都是快捷鍵。o_o
2、一般按『 : 』粗邊標
就會跳到底部的輸入行,一般是用來輸入命令的。
例如:『 :w filename.format 』 將檔案存檔;
' :q ' 退出;
' :q! '不儲存強制退出。
3、『 x 』 刪除當前游標所在的乙個字元,
『 x 』刪除當前游標所在的前乙個字元。
4、' dd '刪除當前行,並將這行存到0剪下板裡(只能複製在當前vim檔案裡)。
5、『 p 』 貼上剪下板。
6、vim預設tab為8位,「 :set ts=4 」將tab設定為四位。
7、"=
→"將該行縮排匹配,「:set sw=4」將其設定為與tab相符。
8、「:set autoindent」設定自動縮排。
9、「:set number」設定行號。
10、為了方便,將上面四步直接寫入vimrc中,省得每次都要設定。
11、全選:「 ggvg 」 --- gg讓游標移到首行,v進入可視模式,g游標移到最後一行。
選中後, d 刪除選中內容,y 複製到在當前vim檔案裡, "+y 複製到系統剪
切板裡(可以貼上在任何方)。
選擇某一段:「nggvmg」,n為其起始行,m為結束行。
選擇一行中的某小段文字,按「v」之後方向鍵移動游標。
ps:"v"視覺化當前字元,"v"視覺化當前行,ctrl+'v'視覺化行最前至游標處。
(1)開啟終端,輸入$ g++ filename.cpp(gcc執行c檔案),編譯.cpp檔案;
(2)輸入$ ls ,可以看到目錄下出現了綠色的a.out檔案;
(3)輸入$ ./a.out ,就可以輸入了~
13、替換:
:s/well/good/ 替換當前行第乙個 well 為 good
:s/well/good/g 替換當前行所有 well 為 good
:n,$s/well/good/ 替換第 n 行開始到最後一行中每一行的第乙個 well 為 good
:n,$s/well/good/g 替換第 n 行開始到最後一行中每一行所有 well 為 good
n 為數字,若 n 為 .,表示從當前行開始到最後一行
:%s/well/good/(等同於 :g/well/s//good/) 替換每一行的第乙個 well 為 good
:%s/well/good/g(等同於 :g/well/s//good/g) 替換每一行中所有 well 為 good
ps:"%"指對全部文字
:3,7s/str1/str2/g僅替換檔案中的第3行到第7行中的「str1」成「str2」
可以使用 # 作為分隔符,此時中間出現的 / 不會作為分隔符
:s#well/#good/# 替換當前行第乙個 well/ 為 good/
:%s#/usr/bin#/bin#g
14、統一新增注釋符:
『esc』
『0』 游標移至行首
ctrl + v
n『j』 選中想要注釋的行數 或者 直接『j』到想要注釋的**塊的最後一行
『i』(大寫) 插入模式
『//』
兩次『esc』
15、刪除空行:
%s/^\n//g 刪除所有空行;
%s/^\n$//g 刪除連續空行並保留乙個空行
16、:n1,n2 m n3 移動n1-n2行(包括n1,n2)到n3行之下;
:n1,n2 co n3 複製n1-n2行(包括n1,n2)到n3行之下;
:n1,n2 d 刪除n1-n2行(包括n1,n2)行;
vim 學習積累(一)
首先是簡單的認識了三種狀態 大家公認的說法是模式 分別是 插入,檢視,和一般。進入vim之後預設的是一般模式,這時直接使用 a i o 也就是進入vim之後直接按下a i o鍵均可進入插入模式。其中的區別是,a命令會另游標後退乙個字元,然後進入插入模式。i是直接進入插入模式,游標位置不變。o會另游標...
C 學習積累 不斷更新
分享乙個c 的學習 1.結構體 struct 所有的成員在預設條件下都是 public 類 class 所有資料成員在預設條件下都是private 2.建構函式 採用的是類名,前邊不需要加返回值。3.在定義的類後邊一定要加 例如 void 4.類的繼承。include class animal vo...
對指標的理解 不斷積累
1.int s 10 int 表示什麼?這個語句看起來很複雜,不過我們一步步來分析。首先 s 10 是乙個陣列,s 10 說明他的元素是指標。那種型別的指標呢?整體來看這個語句 int int 不用多說是函式指標。那麼進一步說就是,s 10 是乙個有 10個元素的指標陣列,每個元素都指向乙個函式,並...