posts - 23,  comments - 94,  trackbacks - 0
好久没写blog了,还是随便写点~ linux下的东西,容易忘~

由于之前一直没能静下心来尝试使用vim以及其配套的一些东西进行coding
今天好不容易有心情泡在ubuntu下面,所以开始google相关的东西

首先,我不是linux的超级fan。通过今天接近3个小时的揣摩过后,我还是无法承认使用我提及的这些东西能够在编辑代码的效率上超过vc + va。不过,重点在于大家都说vim是编辑器之神,好歹也要做一个和神接触过的程序员吧……

首先安装vim应该是很简单的,可能有同学使用的是gvim,我也通过 apt-get 安装了
不过介于在linux环境下,大多数时候还是要和命令行打交道,所以我还是没有选择使用gvim

vim的操作是分模式的,插入模式和普通模式。
随便google一点vim入门的文章就可以知道一些简单的操作,比较实用的操作在于一些编辑技巧。
编辑技巧可以通过vim自带的 vimtutor 进行学习和练习,整套下来大约20分钟。不过不保证都能记住,我觉得初学者在使用中还是会带有很多平时使用windows下文本编辑器的习惯。比如ctrl + c, v, x等。还有使用方向键而不是HJKL来移动光标。

这些东西,应该可以总结为一句话——无他,唯手熟尔。

其实vim作为编辑器,对coding好像是没有多大帮助的,于是我就开始尝试google "vim C++",果然出现一大堆东西。
用过VC+VA的都知道代码补全对写代码的效率的提高是多么的重要。
其实我觉得最好就是能达到VA的程度,于是我开始慢慢尝试。

首先,VIM的插件安装在ubuntu下面被简化了很多。可以使用下面的命令直接安装一个类似插件管理器的玩意:

sudo apt-get vim-addons

安装好这个过后,安装插件就很简单了。
比如 taglist 就之需要使用下面的命令:

vim-addons install taglist

本来google到的一大堆安装vim插件的东西,都是让自己下载解压到vim的文件夹
一般说的是 #HOME/.vim/ 但是我不知道这个目录怎么进,因为我是linux白痴 = =~

taglist 大概就是一个用于查看各种tag的边栏浏览器,它有什么高深的用法我还不知道。
先不讲它~ 讲讲ctag先~

-----------------------------------

ctags

ctags不算是vim的一个插件,它好像支持很多的编辑器,vim算是很正统的支持。
安装ctags就是使用有超级牛力的apt-get

装好了过后呢,在下次使用vim的时候,就可以先对需要tag的源文件进行处理,生成tag
然后可以在tag间进行快速的跳转。 这么说很抽象,来点例子吧~

hello.cpp

#include <stdio.h>

void print_hello()
{
  printf("hello");
}

void print_world()
{
  printf(" world");
}

int main()
{
  print_hello();
  print_world();

  return 0;
}

假设这个文件就放在命令行所在的目录中
使用 ctags -R * 生成一个 tags 的文件,这个文件就是一些tag信息
-R 代表递归子目录
* 代表所有文件

在生成了tag信息后,就可以使用这些tag信息快速跳转到一些地方
比如,在打开文件的时候我就想光标跳转到 print_hello 函数,使用下面的命令:

vim -t print_hello

这个时候vim会打开相应的源文件,并跳转到这个函数的位置。感觉还不错~

-----------------------------------
taglist

接着说刚才那个taglist, 就拿上面这个例子来讲

打开vim后,进入普通模式,输入:Tlist 就会在左侧打开一个taglist的窗口
用了一小会发现,其实那就是一个vim的文件~

里面显示的内容很像VA的 VA Outline
比如 Functions 区域里面会显示两个tag

print_hello
print_world

当使用:q退出 hello.cpp 的编辑的时候,taglist还处于打开状态
光标移动到相应的tag上,比如 print_world 然后回车
右侧窗口就会打开 hello.cpp 并且光标跳转到 print_world 上

-----------------------------------

代码补全

我google到了一个 omnicppcomplete 的玩意,也通过 vim-addons 安装了
不过我还是不知道怎么使用,倒是之前接触过 ctrl + n 的命令。
在输入足够的信息后,按 ctrl + n 即可自动补全,如果只有唯一匹配,就很方便的补全了,如果有选择,比如一个class 有两个 getter 函数,输入get后按ctrl+n就会出来一个选择列表,按上下选择敲回车确定(和VS或者VA的补全挺相似)

omnicppcomplete 说是需要ctags的信息
然后可以达到输入几个字母后自动弹出补全信息的选择框~ 不过我的确没有弄出来,不知道该怎么使用~

-----------------------------------

Makefile

我尝试写了两个cpp和一个hpp,然后写了个超级菜的Makefile
有一个疑问就是,makefile的文件名必须是“Makefile”么?
可不可以自己定义文件名,然后在make的时候带文件名呢?
我尝试了一下 make filename 好像没对~ 不懂~
posted on 2010-02-21 21:39 Charlie 侯杰 阅读(6182) 评论(2)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


by Charlie