`
fyting
  • 浏览: 215754 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

我的VIM tips

    博客分类:
  • VIM
阅读更多

***普通设置***
:set incsearch 增量搜索
:set hlsearch 高亮搜索
:set nu 显示行号
tabnew 新建一个tab
verbose imap  查看imap下的C-v映射的命令
set winaltkeys=no 设置gVIM中不使用Alt键激活菜单

***光标移动***
==============
普通光标移动
--------------
^ 移动到第一个非空白字符
w 向前移动一个单词
b 向后移动一个单词
0 移动到行首
$ 移动到行尾
33G 移动到33行
gg 移动到文件头
G 移动到文件尾
'. 移动到最后编辑的行
`. 移动到最后编辑的字符
''  移动到上次跳转的位置
zt/zb/zz 分别移动光标所在行到屏幕顶部/底部/中间
H 移动光标到屏幕顶行
M 移动光标到屏幕中间
L 移动光标到屏幕最底部

光标/tag跳转
----------------
gf 打开当前光标所在文件
gd 跳转到光标所在tag的定义处
ctrl+w} 使用当前光标所处位置的标识符作为标签,执行 :ptag。生成预览窗口

***buffer & windows***
:bn 下一个buffer
:bp 上一个buffer
:bd 删除buffer
:bun 关闭窗口但不删除buffer

查找与替换

===========================
-------------------
如果置位 'incsearch',用 "/" 或 "?" 录入搜索模式而显示当前的匹配时,CTRL-L 会从当前匹配的末尾一次加一个字符。

:%s/old/new/gc 带提示的查找替换
(C-r) (C-w)写了开始查找的/后,就可以把光标下的词复制到command buffer处

gg=G 缩进文件


:mksession! your_session_name 可以儲存目前的session,! 是覆蓋之前的存檔
:source your_session_name 載入 session

文件粘贴
=========================


 

编辑

=========================

撤销分支:undolist 列出修改的分支

:undo 编号 撤销到某个分支

 

文本选择

===========================

 v_at 选择一个外部标签

v_it 选择一个内部标签

v_a] 选择两个中括号[](包括)

v_i] 选择两个中括号之间的内容

参见 h: text-objects

可以和d,c等命令联合使用,如:

di" 删除引号之间的字符串

ci] 修改中括号([])之间的字符串

如果是VIM7以下版本,可以使用以下映射代替

nnoremap ci" T"ct"
nnoremap ca" F"cf"

if v:version < 700 ... endif

这个映射是无意中在这里http://vlog.blog32.fc2.com/blog-entry-19.html看到的.

 

其他技巧
=========================

转换成16进制
---------------
:%!xxd
转换回来
:%!xxd -r
参见:
:h hex
ga 显示当前字符的ASCII编码

C-r 读取特殊变量
C-rz读取寄存器z中的内容到当前插入点
C-r % 读取当前的文件名到插入点
C-r C-w 读取光标下的单词
h: c_CTRL-R@cn
h: i_CTRL-R@cn
特殊变量见:h cmdline-special

统计单词数量  :%s/pattern/&/g


重定向输出
---------------
参见:h redir
:redir > filename
:version

寄存器
-------------------
"dyw 引号(")开头表示使用寄存器,引号后面的第一个字母(a-z)为寄存器名称,再后面接着命令
"dp     把刚才使用("dyw)命令复制的单词粘贴出来

*是特殊的寄存器,表示当前的剪贴板?

寄存器参见h: registers

查看映射
-------------------
:verbose set history?
:scriptnames      # list all loaded scripts & their location
:map                 # list maps
:functions          # list functions
:ab                   # list abbreviations

脚本

==============================

保存文件后自动执行

:h BufWritePost

举例:
:autocmd BufWritePost *.c (你要执行的命令)

连接字符串使用点(".")

使用expand函数返回当前的路径,如:expand("%:p"),具体参见:h expand

使用tempname()函数返回当前的临时文件名(c:\docume~1\xx\xxaab.tmp)

 有用的函数

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

synID({lnum}, {col}, {trans})    *synID()*
       返回数值,即当前窗口 {lnum} 行 {col} 列所在的语法 ID。

 

命令行
==================
C-D     列出所有匹配的列表
h:wildmenu
:h cmdline-completion   "命令行补全

!{cmd}  运行外部命令
!start {cmd}    异步执行外部命令

语法高亮
=========================================
默认的组        h:highlight-groups
语法高亮的组    group-name

*** 帮助
:helptags ~/vim/doc 重新生成帮助文件的tags
:help add-local-help 添加更多的帮助
:help index
:help i_cmd 查找insert mode命令,比如:help i_Ctrl-y
:help :cmd 查找command-line命令,比如:help :s 
:help 'option 查找选项,比如:help 'tabstop
:help options 可以找到所有的选项说明
:echo &tabstop  查看某一个选项的值

常用帮助
---------
 

 

 

 

 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics