linux編程入門(五)-使用vim編寫程序

編寫程序大家可以自由選擇一種編輯器,常用的可以選vim或emacs房轿。因為我用vim未桥,所以主要介紹一下vim在編寫程序時候的用法,基本用法可以看這里互妓。

[toc]

按ctrl+n補全

這里補全的前提是被補全的單詞已經(jīng)出現(xiàn)過溪窒,比如在代碼里出現(xiàn)過printf坤塞,這時我輸入pri,再輸入ctrl+n就會出現(xiàn)printf的補全候選列表

  • 再按ctrl+n向下移動候選列表光標
  • ctrl+p向上移動光標

vim里搜索當前文件中的關鍵字

  • 把光標移到關鍵字的單詞上澈蚌,按shift+8
    ** 按n切到下一個
    ** shift+n切到上一個

  • 或者按ESC退出編輯模式摹芙,按/,再輸入關鍵字
    ** 同樣是按n和shift+n上下切換

~                                    
[Quickfix List]                         2,1            All
/main    #這樣表示搜索main,回車確認

打開cope窗口

進入命令模式宛瞄,輸入cope浮禾,會出現(xiàn)一個窗口,cope5表示窗口高5行份汗,默認是10行
該窗口可以用于顯示命令結果盈电,比如搜過結果,make編譯結果裸影,如果編譯有錯挣轨,可以在這里直接跳到有錯的代碼處。

 11     char a;
 12     int b;
 13     short c;
 14     void func1(){
main.cpp        下面是cope窗口          1,1            Top
  1     
~                                        
~                                            
~                                            
~                                            
[Quickfix List]                         0,0-1          All
:cope5

關閉cope窗口

按ctrl+w+w 把焦點切到cope窗口上轩猩,再在命令模式下輸入:q就可以退出當前窗口了

vim里搜索其他文件中的關鍵字

命令模式下卷扮,輸入:grep main *.cpp
表示當前目錄的所有cpp文件里搜過main關鍵字

 20 int main(int, char**){
main.cpp        下面是cope窗口          20,1           24%
  1 main.cpp|20| int main(int, char**){             #cope里顯示出了搜過結果
  2 test_sort.cpp|15| int main(int, char**)         #共搜索出來兩行結果
~                                            
~                                            
~                                            
[Quickfix List]                         1,1            All
:grep main *.cpp

自動跳到搜過結果的代碼

多窗口間切換用ctrl+w+w
假如當前vim里打開了cope窗口,并且焦點在vim編輯區(qū)均践,這時候想把光標移到cope窗口晤锹,可以ctrl+連點兩下w,光標就會移到cope窗口彤委,在cope窗口同樣按j鞭铆,k上下移動光標,選中一行搜索結果焦影,按回車车遂,編輯區(qū)就會跳到該結果的代碼處。

打開Tlist窖口

Tlist窗口可以用來查看代碼斯辰,該窗口會把函數(shù)簽名和打開過的文件名都列出來舶担,可以快速的跳到該文件或函數(shù)處
命令模式下輸入: Tlist

  1 #include <stdio.h>                   |   # 這里就是Tlist窗口
  2 #include <string.h>                  |-  main.cpp (/home/dafei/cpp/ga
  3 #include "test_class.h"              |   
  4                                      |-  test_class.cpp (/home/dafei/
  5 void test_fun(){                     |   
  6 }                                    |-  test_class.h (/home/dafei/cp
  7                                      |   
  8 int main(int argc, char** argv){     |   ~                          
  9     (void)argc;                      |   ~                          
 10     (void)argv;                      |   ~                          
 11                                      |   ~                          
 12     printf("hello dafei\n");         |   ~                          
 13                                      |   ~                          
 14     TestClass o;                     |   ~                          
 15     int a = 1;                       |   ~                          
 16     int b = 2;                       |   ~                          
 17     int c = o.sum( a, b );           |   ~                          
 18                                      |   ~                          
 19     char buff[256]; memset(buff, 0x00|   ~                          
    , sizeof(buff));                     |   ~                          
main.cpp               1,1            Top __Tag_List__   3,1         Bot
:Tlist

切到另一個文件

可以用命令:e 文件名 切到另一個文件

打開當前目錄

命令模式: e .
當我們不記得文件名的時候,可以打開當前目錄彬呻,選擇要打開的文件

" ===========================================================================
" Netrw Directory Listing                                        (netrw v162)
"   /home/dafei/test_gdb
"   Sorted by      name
"   Sort sequence: [\/]$,\<core\%(\.\d\+\)\=\>,\.h$,\.c$,\.cpp$,\~\=\*$,*,\.o
"   Quick Help: <F1>:help  -:go up dir  D:delete  R:rename  s:sort-by  x:spec
" ===========================================================================
../
./
test_class.h
main.cpp
test_class.cpp
main*
Makefile
main.o
                                                           1,1           Top

在頭文件與cpp間來回切換

假如我們正在編輯cpp衣陶,想切到頭文件,可以用命令:e切過去闸氮,這時候如果想再切到cpp文件剪况,可以用ctrl+shift+6快速切到上一次編輯的文件,這樣按ctrl+shift+6可以快速的在頭文件和cpp間來回切換

退出所有窗口

當我們打開了Tlist, cope窗口蒲跨,這時候想退出vim译断,命令模式:q 只會退出當前窗口, 需要用:qa 關閉所有窗口

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市或悲,隨后出現(xiàn)的幾起案子孙咪,更是在濱河造成了極大的恐慌藏姐,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件该贾,死亡現(xiàn)場離奇詭異羔杨,居然都是意外死亡,警方通過查閱死者的電腦和手機杨蛋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門兜材,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人逞力,你說我怎么就攤上這事曙寡。” “怎么了寇荧?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵举庶,是天一觀的道長。 經(jīng)常有香客問我揩抡,道長户侥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任峦嗤,我火速辦了婚禮蕊唐,結果婚禮上,老公的妹妹穿的比我還像新娘烁设。我一直安慰自己替梨,他們只是感情好,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布装黑。 她就那樣靜靜地躺著副瀑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪恋谭。 梳的紋絲不亂的頭發(fā)上糠睡,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機與錄音箕别,去河邊找鬼铜幽。 笑死滞谢,一個胖子當著我的面吹牛串稀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播狮杨,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼母截,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了橄教?” 一聲冷哼從身側響起清寇,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤喘漏,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后华烟,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體翩迈,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年盔夜,在試婚紗的時候發(fā)現(xiàn)自己被綠了负饲。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡喂链,死狀恐怖返十,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情椭微,我是刑警寧澤洞坑,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站蝇率,受9級特大地震影響迟杂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜本慕,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一逢慌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧间狂,春花似錦攻泼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至纺弊,卻和暖如春牛欢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背淆游。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工傍睹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人犹菱。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓拾稳,卻偏偏與公主長得像,于是被迫代替她去往敵國和親腊脱。 傳聞我的和親對象是個殘疾皇子访得,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容