linux编程入门(五)-使用vim编写程序

编写程序大家可以自由选择一种编辑器,常用的可以选vim或emacs。因为我用vim,所以主要介绍一下vim在编写程序时候的用法,基本用法可以看这里

[toc]

按ctrl+n补全

这里补全的前提是被补全的单词已经出现过,比如在代码里出现过printf,这时我输入pri,再输入ctrl+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,会出现一个窗口,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编辑区,这时候想把光标移到cope窗口,可以ctrl+连点两下w,光标就会移到cope窗口,在cope窗口同样按j,k上下移动光标,选中一行搜索结果,按回车,编辑区就会跳到该结果的代码处。

打开Tlist窖口

Tlist窗口可以用来查看代码,该窗口会把函数签名和打开过的文件名都列出来,可以快速的跳到该文件或函数处
命令模式下输入: 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 关闭所有窗口



作者:程序大飞
链接:https://www.jianshu.com/p/fbb00627163c
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值