Skip to content

Instantly share code, notes, and snippets.

@chinacheng
Last active July 5, 2023 06:16
Show Gist options
  • Save chinacheng/c0a17c4b3f579729457b37120eb07dab to your computer and use it in GitHub Desktop.
Save chinacheng/c0a17c4b3f579729457b37120eb07dab to your computer and use it in GitHub Desktop.
vim使用笔记
### 1 首先 安装vim
安装vim很简单的命令
```shell
sudo apt-get install vim
```
一些操作键
Shell代码 收藏代码
插入 i
退出 :q
退出所有的页签 :qall
退出其他的页签 :tabo
当前光标下一行换行插入 o
当前光标上一行换行插入 O
左上下右 h j k l
选择文本 摁v然后左右键选择
复制选择 y
剪切 按 v 以及左右选中后 按 x
粘贴 p
删除一行 dd
上下行交换 dd y
删除n个单词 d + 数字 + w
行首 ^(一个句子的行首,不包含空格)
行尾 $
绝对行首 0(阿拉伯数字0,行首,最左边)
句首(段首) (
下一个句首 )
查找下一个与当前光标相同的单词 * 前一个用 #
shift + % 会找到最近的括号,在括号左右进行切换
替换某一个字符 r + 新字符
重复上一次的命令 .
合并两行 J
visual模式 v
visual模式下选择一个单词 e
2 安装NERD-tree插件
下载NERD_tree.vim,copy到~/.vim/plugin/ 目录下,没有这个目录的话,新建这个目录
运行 vim 输入命令
:NEROTree 路径
就打开这个tree结构
3 NERDTree的几个简单的操作
Shell代码 收藏代码
按上下键进行移动光标的位置
按 o 键或者回车键 在展开与收起之间进行切换
按 shift + o 展开所有子菜单
按 i 键 在右侧出现分离的窗体中显示文件
按 t 键 在新的页签中显示文件(显示页签之后 切换页签(从左到右)的命令是 gt, 反向(从右向左)切换 gT )
按 T 键 在后台标签页中打开
按 r 键 递归刷新当前节点
按 shift + r 递归刷新根结点
按 p 键 到上层目录
按 P 键 到根目录
按 K 键 到第一个节点
按 J 键 到最后一个节点
按 u 键 打开上一层目录
按 x 键 合拢选中结点的父目录
按 shift + x键 .递归 合拢选中结点下的所有目录
4 NERD-tree安装之后在,在窗口之间切换
打开一个文本后,光标会移动到右边的文本中
摁 CTRL + w 组合键
然后在 摁 左键 就可以返回左边树状结构
摁 CTRL + w 组合键
然后在 摁 右键 就可以返回右边的编辑页面
设置特定格式的文件不显示,比如.pyc文件,在vimrc文件中添加:let NERDTreeIgnore = ['\.pyc$']
设置左侧菜单的宽度,可以通过在vimrc文件添加 let NERDTreeWinSize=宽度 来设置,其实我觉得这种定宽,不太好用,最好还是用鼠标来控制,设置鼠标在任何情况下可用 set mouse=a ,用的时候,不会出现动画效果,鼠标在中间分栏的地方点一下,就可以左右拖拽了。
5 有点不可思议的是,竟然支持haml的文档 代码高亮。很高兴
6 让代码显示行号,命令是:
:se number
关闭行号
:se nonumber
设置自动显示行号
在配置文件 ~/.vimrc(不存在则新建之) 中添加以下代码
set nu
撤销操作的快捷键
命令状态下 按 u
7 安装rails.vim插件
下载地址 http://www.vim.org/scripts/script.php?script_id=1567
解压zip文件,把三个文件夹下的内容,分别copy到~./vim 下的文件夹下面(不存在,则新建)
可以通过命令 :Rmodel User 跳转到model/user.rb中去
其他的详细命令在doc中可以看到
其中比较牛逼的gf命令,就是组合键ctrl+w 然后在摁 f(新页签)/gf(新窗口),他就会跳转到对应的类或者页面上去
至于Rmodel之类的命令就是在后面加上model名字
8 ruby代码的自动格式化
搜了以下命令gg=G
但是我运行的时候,不是格式化,而是把所有的代码顶格了
需要修改一下配置文件
编辑文件 ~/.vimrc(不存在则创建之) 添加下列代码
Java代码 收藏代码
if has("autocmd")
filetype indent on
endif
保存之
再去找一个ruby文件测试一下命令 gg=G 成功
9 重新载入页签内容
Shell代码 收藏代码
:e
10 批量注释行-注释多行
Shell代码 收藏代码
ctrl+v 选中多行,然后按键 shift+i 在光标所在行添加内容(ruby 注释 就是 #), 最后按 ESC 键应用到选中的所有行
11 前后移动
Shell代码 收藏代码
w 下一个单词
e 单词尾
b 前一个单词
12 插入一个字符多次
Shell代码 收藏代码
次数数字 + i + “字符” + esc
13 查找
Shell代码 收藏代码
a、字符查找
f + 字符 往后查找
F + 字符 往前查找
b、文本查找
/ + 文字
n 往后查找下一个
N 往前查找上一个
14、代码粘贴的时候出现错乱
使用命令 set paste
完毕之后 set nopaste
15、代码自动匹配
使用snipMate.vim插件
配置snippets文件夹下各种文件匹配的对应配置文件
自动匹配括号引号等操作
打开snippets下的_.snippets文件,添加下面代码
Java代码 收藏代码
# auto complete ({['"
snippet (
(${1})${2}
snippet {
{${1}}${2}
snippet [
[${1}]${2}
snippet <
<${1}>${2}
snippet '
'${1}'${2}
snippet "
"${1}"${2}
输入(按tab键补全,输入完()里面的内容之后再tab,跳出
16、vim执行shell
方法一:
在vim中输入 :shell 命令,然后会跳到当前terminal页面,做完操作之后,Ctrl + d 命令返回vim
方法二:
输入 :! 空格 加命令(比如ls -a) 会跳出vim编辑页面,跳转到terminal执行命令,按enter返回
如果要将shell命令的返回值插入到当前文件中,结合:r 命令来实现
:r !ls -a(把当前目录问价插入到编辑的文件中)
17、使用寄存器存储复制的内容
复制:
在普通模式下按v选中要复制的内容 " + a + y 键就是把选中的元素复制到名字为a的这个寄存器中了(a的名字可以任意替换)
粘贴:" + a + p 把寄存在a中的东西粘贴出来
附录:
我使用的一些插件以及vim配置
https://github.com/chinacheng/vimrc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment