Chinaunix首页 | 论坛 | 博客
  • 博客访问: 56743
  • 博文数量: 20
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 200
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-30 11:11
文章分类

全部博文(20)

文章存档

2018年(2)

2010年(2)

2009年(16)

我的朋友

分类:

2009-12-14 19:59:04

光标停在文件名处按gf会打开此文件,这对快速跳到头文件阅读很有用
[I在path所设定的路径下的文件中查找当前光标处单词的声明;[做同样的事,并跳到那里

:%!xxd   切换到十六进制显示
:%!xxd -r  切回文本方式显示

runtime syntax/2html.vim把当前缓冲区中的内容转换成html代码

shell多行注释

windows下按+q进入列模式(linux下+v),用方向键jk选择需要加注释的行,按I(大写i)表示行首插入,按#表示注释这些行,按返回normal mode。大功告成。

要删除注释符的话,按0返回行首,按上面方法选中行,按d即可。

补充:windows和linux下按进入行模式.


+^在两个缓冲区中切换

:bd 关闭当前缓冲区


多行缩进
进入visual mode后选中要缩进的行,按>。若取消一个缩进按<。


Vim 支持单词的自动完成。比如,你前面使用了一个很长的变量名,叫 aLongVariable,下面你在输入时,就不用完整键入了。很可能,你只需要键入“aL”,然后按下+P(向前搜索可匹配的单词并完 成)就可以得到完整的变量名(没有得到想要的结果的话,多按几下“Ctrl-P”;或者前面多输入几个字符,如“aLongV”)。类似的命令还有 +N(向后搜索可匹配的单词并完成)。具体可参看“:help ins-completion”。


在normal模式下光标停在某个字符上ga可以查看该字符的ascii码

#复制删除粘贴的操作:按V(shift+v),进入可视模式,jk上下选择需要的行,然后按

y   复制

d   删除

x    剪切

p   粘贴

可视模式很好用,例如想把两行的所有单词变成小写,按V然后按j或k选中这两行,按gu即可

#跳到行首按0,但实际更好用的是^, 跳到行首非空白字符

#折行前空出4字符显示折行标识
set foldcolumn=4

#折叠或展开(在折叠的那一行左右移动光标也可展开折叠)

za

#删除光标所在行所处的范围的折叠

zd

#当在:set foldmethod=marker后,折行会把{{{和}}}之间的内容折叠


#不在单词中间断行。 设置了这个选项后, 如果一行文字非常长, 无法在一行内显示完的话,
它会在单词与单词间的空白处断开, 尽量不会把一个单词分成两截放在两个不同的行里。

set lbr


#sw是shiftwidth的缩写,表缩进列数


fx把光标移动到该行的下个x字符上,这个x也可以是一个汉字,;重复fx操作。Fx把光标移动到该行的上一个x字符上。
gg光标定位到第一行开头,G定位到最后一行开头
H光标跳到当前窗口显示文本的第一行
M光标跳到当前窗口显示文本的中间一行
L光标跳到当前窗口显示文本的最后一行

g*查找包含当前单词的所有单词(*只查找与当前单词精确匹配的单词),

-d光标下跳半屏,文本上滚半屏
-u光标上跳半屏,文本下滚半屏
-e文本向上滚动一行
zz屏幕滚动使得当前行成为屏幕的中间一行


normal模式下按J删除此行末尾的换行符,从而合并两行

normal mode下gUw一个单词变大写,gUG从光标所在位置到文件尾所有单词变大写。

:e!重新读进上次保存的此文件内容


:ab myname william_djj

以后再编辑时键入myname,然后空格或回车myname串就会被william_djj代替

 

:r !date

在当前位置插入系统时间(linux下的date命令),同理当前位置插入某文件的内容就是

:r filename


:set ignorecase

查找时取消case sensitive

:set noignorecase

查找时case sensitive


############    使用tags    ###################

以下命令递归当前目录下的所有文件创建tags文件,会在当前目录下创建标记文件tags
ctags -R .
vim打开当前目录下的任意一文件,命令模式下键入下面语句以指定刚才创建的tags的位置,以后就可以在不同文件间查阅函数(默认在当前位置找)
set tags=tags

#分割窗口显示当前函数的定义
-w ]

#如果有多处定义,用下面命令显示列表

g]

##########################################

补充:

ctags --list-kinds列出每种语言中的符号类型
ctags --list-maps列出默认的文件后最对应哪种文件
ctags --list-languages列出支持的语言

如果插件目录下有echofunc.vim,用以下命令生成tags,以后编辑代码函数名后打“(“时有参数提示。

$ ctags -R --fields=+lS .

若加入omnicppcomplete插件,则下面生成的tags有自动补全功能(:h cppcomplete查看详细用法)。

$ ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .


:Tlist打开左边一个taglist的窗口,显示symbols。要注意的是在windows下如果tags文件路径中有空格或中文会报找不到tags文件的错误,


+w+w 或者+w+left/right 窗口切换

+w+j 跳到下面的窗口,+w+k 跳到上面的窗口,h,l 类推

+] 进入光标所指的symbol的定义(如果用鼠标也是+鼠标左键,跟SI的用法一样)
+t 返回第一个用+t 跳转位置,注意+o是跳回上一个视图,而+t是跳回上一次按+]的位置

#以下命令分裂出一个窗口显示定义处
ptag 函数名
#以下命令关闭刚才打开的分裂窗口
pclose

#垂直分裂窗口打开一文件
vsplit 文件名
#水平分裂窗口打开一文件
split 文件名

变量名写成\name表示匹配模式

停在某个括号上按%,跳到匹配的括号处,#if跳到匹配的#else或#endif处

set fdm=syntax折叠函数体

双击]往后逐个函数跳读,双击[往前逐个函数跳读

#解决乱码

set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

 

#在vim下对比两个文件,原来打开了fnpro.c,现在和fnpro.c.bak对比
#垂直分割
:vert diffsplit fnpro.c.bak
#水平分割
:diffsplit fnpro.c.bak
#跳到下一个不同之处
:]c
#跳到上一个不同之处
:[c

#展开折叠:zo

#折叠:zc

#不论何种情况下-o都可以上一次跳转的地方

#查看变量和函数的申明

[i
#以下为查看vim环境参数makeprg的值的例子:
:set makeprg?
#重新对文件代码进行缩进
gg=G


:help  打开帮助首页,这个首页分类非常清楚
:help cmd 查找normal mode命令,比如:help dd
:help i_cmd 查找insert mode命令,比如:help i_Ctrl-y
:help :cmd 查找command-line命令,比如:help :s
:help 'option 查找选项,比如:help 'tabstop
如果你记不清命令或者选项的全称,那么可以利用Tab或者Ctrl-d的自动补全功能。
:help options 可以找到所有的选项说明
查看某一个选项的值(实际上选项是VIM中的一种变量,类似SHELL的变量以$符号引用,
VIM的选项以&引用,另外VIM的寄存器以@引用):
:echo &tabstop
:help registers看看vim的神秘的寄存器

在 Vim 的帮助窗口中的关键字上双击鼠标或者键入“Ctrl-]”即可跳转至该关键字相关的帮助主题



    Normal mode下按q指{a-zA-Z0-9"}37个寄存器中的一个,然后可以进行任何
操作,包括在模式间切换,最后在Normal模式下按q可以结束宏录制,用@命令可以应用
这个宏,命令前可以带数字前缀表示执行多少次这个宏。
:help q

书签
    Normal mode下按m作书签,指26个命名寄存器中的一个,然后可以用'
者`跳到书签处。
:help m

map i=strftime("%Y-%m-%d")
即可以在Normal mode下插入当前日期。


Vim 对make和grep有着特殊的支持。该支持主要通过访问一个特殊的快速修订窗口(quickfix window)来实现。直接在 Vim 的命令模式里输入相应的 make 或 grep 命令(如“:grep foo *.c”)即可将命令的执行结果放入该窗口,同时根据返回的结果跳转到第一个错误(make 的情况;在使用 grep 时是匹配成功之处)。以下是常用的“快速修订”命令:
    * :cn(显示下一个错误)
    * :cp(显示上一个错误)
    * :cl(列出所有的错误及其编号)
    * :cc(跳转到指定编号的错误)
    * :copen(打开快速修订窗口,在其中显示所有错误,可在错误上双击鼠标或按回车键跳转至该错误)
    * :cclose(关闭快速修订窗口)
Vim 的这个特性也可以与 make 和 grep 以外的程序一起工作(事实上,在 Windows XP 上,“:grep”命令一般调起的是“findstr /n”)。具体调用那个程序由选项 makeprg(Linux 下缺省为“make”)和 grepprg(Linux 下缺省为“grep -n $* /dev/null”)控制,而如何解析返回的内容则由选项 errorformat 和 grepformat 控制。鉴于在 Unix/Linux 下一般不需更改这些选项的内容,此处不再详述。

阅读(833) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~