-
Notifications
You must be signed in to change notification settings - Fork 112
Home
- 建议升级到 Vim 7.4(Vim7.2 时添加 markdown 目录和 pangu 插件会有影响)
- 君子性非异也 善假于物也
- 本 Vim 可以重复安装
- 普通用户执行程序时需要有 sudo 权限
wget -O V1.1.1.tar.gz https://github.com/meetbill/Vim/archive/V1.1.1.tar.gz
#git clone https://github.com/meetbill/Vim.git
#chmod 777 -R Vim
#cd Vim
#./start_vim.sh
常见问题
使用 Git clone 失败
[root@localhost ~]# git clone https://github.com/meetbill/Vim.git
Initialized empty Git repository in /root/Vim/.git/
error: while accessing https://github.com/meetbill/Vim.git/info/refs
fatal: HTTP request failed
解决方法
#git config --global http.sslVerify false
如果还是提示如上错误
尝试更新 nss
yum update nss nss-util nspr
#curl -o vim.zip https://codeload.github.com/meetbill/Vim/zip/master
#unzip vim.zip
#cd Vim-master
#bash start_vim.sh
#cd ~
#rm -rf .vim*
<F2> : TlistToggle // 显示函数列表
按<F2>将会在 VIM 的左边打开一个 Taglist 窗口,这个窗口里面包含了 C 文件里面的定义,如 struct,typedef, 全局变量,函数等。
使用'<'Ctrl>+h 将光标移动到左边的窗口,上下选择 tag 按回车定位到 tag 的定义处。
<F3> : NERDTreeToggle // 当前目录列表,方便打开文件
按<F3>会在 VIM 的右边打开一个文件浏览器窗口。再按一下<F3>会关闭这个窗口。
<F4> : MRU // 最近文件列表
按<F4>会打开一个 MRU 窗口,这个窗口里面记录了最近打开的文档,上下选择文件回车打开。如果没有你想打开的文件可以按"q"关闭窗口。
<F5> : LookupFile
<F5>在 VIM 的上面打开文件查找窗口,
<F6> : Dox
添加函数注释
<F7> : gcc
直接按<F7>可以对打开的文件直接编译
<F8> : gdb
直接按<F8>可以直接进入 gdb 调试状态
<F9> : Generate tags
在代码间跳来跳去。先按<F9>生成 tag 数据库。将会在项目的当前目录下生成 tags 文件。
此时将光标放在某个函数调用上,按<Ctrl>+] 就会跳到函数的定义处,按<Ctrl>+o 就会跳回来。
<F10> : HLUDSync 『目前此功能已下线』
按<F10>可以生成 cscope 的数据库文件 cscope.out,再使用",sa"(:cs add cscope.out) 添加数据库文件。
当下次启动 VIM 的时候就会自动加载当前目录下的 cscope 数据库文件。
在.vimrc 里面定义了使用 cscope 的快捷键,比如将光标放在某个函数上使用命令",sc"就可以查看这个函数被哪些函数调用过,
<F11> :genfiletags.sh
<F12>add cscope.out 『目前此功能已下线』
在查找文件之前要生成文件数据库,
按<F12>将会在项目的当前目录下生成 tags.filename 文件,所以最好是在项目的根目录下按<F12>。再按<F5>就可以使用通配符查找文件了。
- c 语言中输入 main 后按 table 键,自动生成 main 函数
- 输入单词自动补全(注,本文档之前输入的单词自动补全)
- 按 tab 键会产生 4 个空格,很适合 python 编程哦
- 命令行模式输入(画图是 Vim 普通模式下画图,画图时可以随时切换 Vim 编辑模式)
- :DIstart 可以进行画图(开启 DrawIt 模式)
- :DIstop 进行关闭
+--------+---------+----------+
| [Home] | 上 | [PageUp] |
+--------+---------+----------+
| 左 | | 右 |
+--------+---------+----------+
| [End] | 下 |[PageDown]|
+--------+---------+----------+
向下的箭头(v), 向上的箭头(^)
备注:
(1) DrawIt 模式下如果想上下左右移动而不是想画图的话,需要使用 h(左)j(下)k(上)l(右)
(2) 空格用于切换光标为画图模式还是橡皮檫模式
-
命令行模式输入
- :GenTocGFM 生成 GFM 链接风格的 Table of Contents. 适用于 GitHub 仓库里的 Markdown 文件。
- :GenTocRedcarpet 生成 Redcarpet 链接风格的 Table of Contents. 适用于使用 Redcarpet 作为 Markdown 引擎的 Jekyll 项目或其它地方。
- :Pangu 手动执行该命令,将当前文件进行中文规范化。
-
命令行下输入命令时按 tab 键会将所有匹配值输出
- 普通模式下(折叠):
- zo 展开
- zc 收起
- zn 全部展开
- zN 全部折叠
- 普通模式下(进入命令行模式):
- 空格 点击空格会自动在命令行添加":"
vim 匹配特定的行并删除它
:g/pattern/d
:set filetype?
查看文件格式,:set fileformat=unix
执行程序发现输出的中文乱码,可以看下文件的编码方式
:set fileencoding
在 Vim 中直接进行转换文件编码,比如将一个文件转换成 utf-8 格式
:set fileencoding=utf-8
因为 Vim 开启了自动缩进,粘贴代码时会错位,粘贴代码时可以如下操作
# 要粘贴代码时
:set paste
# 粘贴完后
:set nopaste
在.vimrc 中添加以下代码后,重启 vim 即可实现按 TAB 产生 4 个空格 (Vim IDE 中已添加)
set ts=4 (注:ts 是 tabstop 的缩写,设 TAB 宽 4 个空格)
set expandtab
有一个场景是从网上下载个 python 程序,里面是 TAB 键进行缩进的,上面的配置只对新建的文件有用,那么如何进行修改尼
对于已保存的文件,可以使用下面的方法进行空格和 TAB 的替换:
TAB 替换为空格:
:set ts=4
:set expandtab
:%retab!
空格替换为 TAB:
:set ts=4
:set noexpandtab
:%retab!
注:加!是用于处理非空白字符之后的 TAB,即所有的 TAB,若不加!,则只处理行首的 TAB。
命令行模式下,注释掉 line1 与 line2 之间的行
line1,line2s/^/#/g
如果需要删除文章中的空行,可以使用一下语句:
:g/^\s*$/d
简单解释一下:
g :全区命令
/ :分隔符
^\s*$ :匹配空行,其中 ^ 表示行首,\s 表示空字符,包括空格和制表符,*重复 0 到 n 个前面的字符,$ 表示行尾。连起来就是匹配只有空字符的行,也就是空行。
/d :删除该行
将不可见的字符显示
:set invlist
回到正常的模式
:set nolist
同时在 Linux 中,cat -A file 可以把文件中的所有可见的和不可见的字符都显示出来
默认升级的 Vim 是 python3 支持,如果需要添加 python2 support
brew install vim --with-python@2
具体参数可以通过 brew info vim
查看
Mac 上使用 ctags 时遇到报错:
ctags: illegal option -- R
问题在于 Mac 预装的 Ctags 是 mac 自己的版本,而我们通常所说的 ctags 是指 Exuberant Ctags。上面这个 -R 的命令就是后者才能用的。
解决方案是重新安装 Exuberant 版的 ctags:
brew install ctags
alias ctags="`brew --prefix`/bin/ctags"
# 测试
ctags -R
成功后将 alias ctags 信息写入到 shell 的配置文件中即可
修改 ~/.vimrc
let Tlist_Ctags_Cmd = 'ctags'
将 Tlist_ctags_cmd 项修改为 'ctags'
建议设置为 Tango Dark
写 python 的时候,Vim 会进行代码检查,使用这个主题,代码检查标记的红色时,也可以看清楚代码
vim-gitgutter: cannot find git. Please set g:gitgutter_git_executable.
Press ENTER or type command to continue
下列方法二选一
- 在服务器上安装 git
- 删除 ~/.vim/bundle/vim-gitgutter 目录
修改 ~/.vimrc 文件,增加如下内容
set encoding=utf-8
- Vim 课外阅读
- 笨方法学 Vimscript
- VimL 语言编程指北路--PDF & 源仓库
- VimL 语言编程指北路--gitbook
欢迎使用 Vim IDE