基于webvim修改的,增加插件、优化使用。
Only tested on Mac OSx
- 最新版本的Vim 7.4+ 使用(
brew install macvim
)安装,vim 版本更新brew install macvim --override-system-vim
- Node.js and npm
- 通过npm安装一些依赖
npm install -g eslint csslint jshint jsonlint handlebars
$ git clone https://github.com/jaywcjlove/vim-web.git ~/.vim
$ ln -s ~/.vim/.vimrc ~/.vimrc
$ vim
注: 默认已经安装了前端必备插件。
- 在
/plugins/def.vim
中添加 Github 地址,如:username/repos
。 - 命令行中运行
vim
。 - 输入
:PlugInstall
摁enter
进行安装。
进入 vim 输入下面命令:
:PlugUpdate
a
→ 在光标所在字符后插入
A
→ 在光标所在字符尾插入
i
→ 在光标所在字符前插入
I
→ 在光标所在行行首插入
o
→ 在光标下插入新行
O
→ 在光标上插入新行
:set number
→ 设置行号 简写set nu
:set nonu
→ 取消行号
gg
→ 到第一行
G
→ 到最后一行
nG
→ 到第n行
:n
→ 到第n行
S
→ 移至行尾
0
→ 移至行尾
hjkl
→ 前下上后
w
→ 到下一个单词的开头
b
→ 与w相反
e
→ 到下一个单词的结尾。
ge
→ 与e
相反
0
→ 到行头
^
→ 到本行的第一个非blank字符
$
→ 到行尾
g_
→ 到本行最后一个不是blank字符的位置。
fa
→ 到下一个为a的字符处,你也可以fs到下一个为s的字符。
t,
→ 到逗号前的第一个字符。逗号可以变成其它字符。
3fa
→ 在当前行查找第三个出现的a。
F
和 T
→ 和 f
和 t
一样,只不过是相反方向。
zz
将当前行置于屏幕中间(不是转载…)
zt
将当前行置于屏幕顶端(不是猪头~)
zb
底端啦~
整页翻页 ctrl-f
ctrl-b
f就是forword
b就是backward
x
→ 删除关闭所在处字符
nx
→ 删除关闭所在处n个字符
dd
→ 删除光标所在行,ndd
→ 删除n行
dG
→ 删除光标所在行到文件末尾内容
D
→ 删除光标所在处到行尾内容
:n1,n2d
→ 删除指定范围的行 如:1,2d
yy
和 p 的组合键,或者dd
和 p 的组合键
yy
→ 复制当前行
nyy
→ 复制当前行以下n行
dd
→ 剪切当前行
ndd
→ 剪切当前行以下n 行
p、P
→ 粘贴在当前光标所在行或行上
2dd
→ 删除2行
3p
→ 粘贴文本3次
r
→ 取代关闭所在处字符
R
→ 从光标所在处开始替换字符,摁ESC
结束
u
→ 取消上一步操作
ctrl + r
返回上一步
:w
→ 保存修改
:w new_filename
→ 保存为指定文件
:wq
→ 保存修改并推出
ZZ
→ 快捷键,保存修改并推出
:q!
→ 不保存修改推出
:wq!
→ 保存修改并推出(文件所有者,root权限的用户)
/string
→ 搜索指定字符串,搜索时忽略大小写命令 :set ic
n
→ 搜索指定字符串的下一个出现位置
#
→ 搜索指定字符串的上一个出现位置
:%s/old/new/g
→ 全文替换指定字符串,%s
→ 全文替换,1,3s
指定范围替换,g
全局替换, c
询问替换
:vimgrep /dostuff()/j ../**/*.c
搜索文件内容
:lvim /\<\(house\|home\)\>/gj *.txt
搜索
:lw
列出搜索结果
Ctrl+ww
Ctrl+n // 菜单切换
Ctrl-n #匹配下一个关键字
Ctrl-p #匹配上一个关键字
:ce(nter) # 居中显示光标所在行
:ri(ght) # 靠右显示光标所在行
:le(ft) # 靠左显示光标所在行
J # 将光标所在下一行合并到光标所在行
>> # 光标所在行增加缩进(一个tab)
<< # 光标所在行减少缩进(一个tab)
n>> # 光标所在行开始的n行增加缩进
n<< # 光标所在行开始的n行减少缩进
:tabnew [++opt选项] [+cmd] 文件 #建立对指定文件新的tab
:tabc #关闭当前的tab
:tabo #关闭所有其他的tab
:tabs #查看所有打开的tab
:tabp #前一个
:tabn #后一个
# 下面为自定义快捷键
tnew #新建tab
tn #后一个 tab
tp #前一个 tab
#标准模式下:
gt , gT #可以直接在tab之间切换。
#还有很多他命令, 看官大人自己, :help table 吧。
#
Ctrl+ww # 移动到下一个窗口
# 或者 先按组合键ctrl+w ,然后都松开,然后通过j/k/h/l(等于vim移动的方向键) 来移动大哦哦左/上/下/右的窗口
Ctrl+wj #移动到下方的窗口
Ctrl+wk #移动到上方的窗口
:new 水平切割窗口
:split 水平切割窗口(或者直接输入 :sp 也可以)
:vsplit 垂直切割( 也可以 :vs )
:close #最后一个窗口不能使用此命令,可以防止意外退出vim。
:q #如果是最后一个被关闭的窗口,那么将退出vim。
zfap #创建一个段落的折行
zc #关闭折行
zo #打开折行
:21,27s/^/#/g
行首替换#
替换(增加)掉
:ab mymail [email protected]
输入mymail
摁下空格自动替换成[email protected]
- 导入命令执行接货
:r 文件路径/文件名
命令 - 找命令
:!which ls
不推出vim运行命令 - 查看编辑时间
:!date
- 组合使用
:r !date
将当前编辑时间导入当前文本光标所在行 - gU (变大写)
- gu (变小写)
在文件~/.vim/plugins/def.vim
添加一行
- 在Github vim-scripts 用户下的repos,只需要写出repos名称
- 在Github其他用户下的repos,需要写出
用户名/repos名
- 不在Github上的插件,需要写出git全路径
打开vim,运行:BundleInstall
或在shell中直接运行vim +BundleInstall +qall
- Mango A nice color scheme
- VimAirline Lean and mean statusbars
- NERDTree Manage your project files
- VimFugitive Git integration
- VimGitGutter Git diff in the gutter
- EditorconfigVim Shared coding conventions
- command-t 文件搜索
- NERDCommenter 注释更容易
- VimTrailingWhitespace 突出尾随空格
- Syntastic 语法检查
- VimEasyAlign 调整部分代码
- VimMultipleCursors Write on multiple lines easily
- VimJsBeautify Reformat JavaScript, HTML and JSON files
- VimYankStack Iterate over yanked stack on paste
- VimSurround Quoting and parenthesizing
- YouCompleteMe Autocompletion engine
- VimForTern Smart JavaScript autocompletion
- VimNode Navigate through node.js code/modules
- VimLint Linter used by syntastic for VimL
- VimLParser VimL parser (required by VimLint)
- emmet-vim 提高HTML和CSS的工作流
- VimJson JSON highlighting and quote concealing
- YaJS JavaScript syntax (ES5 and ES6)
- JavaScriptLibrariesSyntax Syntax highlighting for well-known JS libraries
- VimCSS3 CSS3 syntax
- ScssSyntax SCSS syntax
- HTML5 HTML5 syntax
- Stylus Stylus 代码高亮
~/.vim/plugins/plugged/command-t/ruby/command-t
目录下面的执行ruby extconf.rb
然后执行make
,<Leader>t
or |:CommandT
来启动搜索。
div>p#foo$*3>a
输入完成后,快捷键<ctrl+y>,
生成html代码。
按大写的 V
进入 Vim 可视模式,行选取
上面三行内容,然后按键 <c-y>,
,这时 Vim 的命令行会提示 Tags:
,键入ul>li*
,然后按 Enter
。
<ctrl+y>d
根据光标位置选中整个标签
<ctrl+y>D
根据光标位置选中整个标签内容
<ctrl-y>n
跳转到下一个编辑点
<ctrl-y>N
跳转到上一个编辑点
<ctrl-y>i
更新图片大小
<ctrl-y>m
合并成一行
<ctrl-y>k
移除标签对
<ctrl-y>j
分割/合并标签
<ctrl-y>/
切换注释
<ctrl-y>a
从 URL 地址生成锚
<ctrl-y>A
从 URL 地址生成引用文本
help emmet
http://my.oschina.net/u/1030865/blog/323114
ctrl + w + h # 光标 focus 左侧树形目录
ctrl + w + l # 光标 focus 右侧文件显示窗口
ctrl + w + w # 光标自动在左右侧窗口切换
ctrl + w + r # 移动当前窗口的布局位置
o # 在已有窗口中打开文件、目录或书签,并跳到该窗口
go # 在已有窗口 中打开文件、目录或书签,但不跳到该窗口
t # 在新 Tab 中打开选中文件/书签,并跳到新 Tab
T # 在新 Tab 中打开选中文件/书签,但不跳到新 Tab
i # split 一个新窗口打开选中文件,并跳到该窗口
gi # split 一个新窗口打开选中文件,但不跳到该窗口
s # vsplit 一个新窗口打开选中文件,并跳到该窗口
gs # vsplit 一个新 窗口打开选中文件,但不跳到该窗口
! # 执行当前文件
O # 递归打开选中 结点下的所有目录
x # 合拢选中结点的父目录
X # 递归 合拢选中结点下的所有目录
e # Edit the current dif
双击 相当于 NERDTree-o
中键 对文件相当于 NERDTree-i,对目录相当于 NERDTree-e
D # 删除当前书签
#
P # 跳到根结点
p # 跳到父结点
K # 跳到当前目录下同级的第一个结点
J # 跳到当前目录下同级的最后一个结点
k # 跳到当前目录下同级的前一个结点
j # 跳到当前目录下同级的后一个结点
C # 将选中目录或选中文件的父目录设为根结点
u # 将当前根结点的父目录设为根目录,并变成合拢原根结点
U # 将当前根结点的父目录设为根目录,但保持展开原根结点
r # 递归刷新选中目录
R # 递归刷新根结点
m # 显示文件系统菜单
cd # 将 CWD 设为选中目录
I # 切换是否显示隐藏文件
f # 切换是否使用文件过滤器
F # 切换是否显示文件
B # 切换是否显示书签
#
q # 关闭 NerdTree 窗口
? # 切换是否显示 Quick Help
-
定义行首添加
#
注释 ::map ^P I#<ESC>
摁ctrl + v +p
定义快捷键I#首行插入#
摁<ESC>
推出 -
定义快捷键去掉
#
注释::map ^B 0x
跳到行首删除