gvim使用 pratical vim 读书笔记
常用命令
全局替换相关
- :%s/vivian/sky/(等同于 :g/vivian/s//sky/)替换每一行的第一个 vivian 为 sky
- :%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sk
光标移动
- ^H 光标移至当前屏幕显示首行的行首;
- ^M 光标移至当前屏幕显示的中间行的行首;
- ^L 光标移至当前屏幕显示的最后一行的行首;
- w 以word单位向后移动 到首字符
- e 以word单位向后移动 到尾字符
- b 以word单位向前移动
- % 跳转到当前括号的匹配位置
- 0 行开始
- $ 行尾
- 3G 跳转到第3行
- gg 跳转到第1行
- zz 当前光标位置显示到中间
- G 跳转到尾行
- H M L 当前显示的上中下
- :set number 显示行号 set nonumber
- :set ruler 右下角显示光标位置
- :syntax enable 支持语法高亮
- 屏幕滚动:
- ^F 屏幕向下滚动一屏;
- ^B 屏幕向上滚动一屏;
- ^E 屏幕向下滚动一行;
- ^Y 屏幕向上滚动一行;
- ^D 屏幕向下滚动半屏;
- ^U 屏幕向上滚动半屏;
- Z + ENTER 滚动屏幕,使当前光标所在行处于屏幕第一行;
- z + . 滚动屏幕,使当前光标所在行处于屏幕中间行;
- z + - 滚动屏幕,使当前光标所在行处于屏幕最后一行;
多窗口编辑
- :split 上下分隔窗口 编辑同一个文件
- ctrl w 松开后 上下切换窗口 h j k l
- ctrl w 松开后 移动窗口 大写 H J K L
- (行数)ctrl w 松开 +
- :close 关闭窗口 :only 关闭其他窗口
- :wqal 保存并推出所有
- :qall! 放弃所有修改并退出
- :split 指定ZZ名 (可以是新文件)
- :[指定行数]split
- 垂直分隔 vsplit
- :tabedit 标签页
查找操作
- fx 当前行查找字母x ;匹配下一个
- F 向左搜索当前行
- /xxxx 直接查找字符串 此时使用n跳转到下一个匹配字符串 也可用上下箭头选择历史输入
- :set hlsearch 高亮显示搜索结果 set nohlsearch
-
- 查找光标所在单词
常用操作
- J 两行合并一行(删除换行符)
- u 撤销
- ctrl + r 重做
- 大O 当前行的上一行插入
- 3ax 该命令重新执行3次 需要
- e! 放弃所有修改,重新载入原始内容
- 大A 单词添加到行尾
- 大I 单词行首插入
- v 然后选中 然后嗯 y 移动到指定位置然后按 p
- 使用vim 更改jar包中文件 vim edit . 选择jar包 回车 搜索到指定文件 更改
模式转换
- cw 删除当前单词后面的字符 然后进入insert
- dw 删除当前单词后面字符 不进入insert
执行命令 输入$ command
- : Use Command-Line mode to execute an Ex command
- / Use Command-Line mode to perform a forward search
- ? Use Command-Line mode to perform a backward search
- = Use Command-Line mode to evaluate a Vim script expression
tip1 Meet the Dot Command
- .命令 重做最后一次 .(dot)
- >G 光标到文件结尾行都向右平移TAB,如果指定数字 则移动对应行
- G 默认跳到最后1行 指定行数后到指定行
- A 光标移动到最后一行并insert $ai
tip2 Don’t Repeat Yourself
- 所有行首插入数据 :%norm iXXXX
- 所有行尾插入数据 :%norm AXXXX
- 组合操作 Compound Command Equivalent in Longhand
- C c$ 删除所在行光标后内容
- s cl 删除光标后一个字符并insert
- S ^C 删除整行内容
- I ^i 光标到行首 insert
- A $a 光标到行尾 insert
- o A 下一行添加
- O ko 上一行添加
tips3 Take One Step Back, Then Three Forward
- f{char} 查找第n个出现的字符,并移动光标 到目标
- ; 向后移动匹配值 , 向前移动匹配
tips4 Act,Repeat,Reverse
- 继续操作,或者reverse
tips5 Find and Replace by Hand
- :%s/vivian/sky/(等同于 :g/vivian/s//sky/)替换每一行的第一个 vivian 为 sky
- :%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sk
- *查找光标所在单词
tips6 Meet the Dot Formula
- one keyStroke to Move, one Keystroke to Execute
PartI Modes
tips7 Pause with Your Brush Off the Page
tips8 Chunk Your Undos
- 进入insert中进行更改,然后esc ,这次操作会被当作整体回滚。(前提是不能用上下左右箭头)
tips9 Compose Repeatable Changes
努力让自己的操作都是repeatable (用 逗号可以重放)
- b 按word前移
- w 按word后移
- dw 删除单词(光标位开始)
- daw 删除单词