1

背景

之前一直的工作流鼠标键盘,以为开发就是敲敲点点。16年9月入坑vim以来,我自己感觉开发效率50%的提升,前期开发模式换为vim需要适应几个月吧,恶心恶心就过去了。vim学习曲线了解一下,所有的付出都是值得的。Edit text at the speed of thought
horrorstories.txt.jpg

vim环境基本配置

两种选择,推荐1

1.好用基础版。repo github star14k+,Basic Verison推荐,Vimrc Github

安装步骤:

git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime
sh ~/.vim_runtime/install_basic_vimrc.sh

2.自己写个简单的。需要自定义配置在$HOME下新建.vimrc,配置完成后执行source .vimrc

# 开启行号
set number
# 注释颜色改为好辨
colors desert
# reindent操作(>>\<<)缩进4个空格
set shiftwidth=4
# 敲入tab键时实际占有的列数
set softtabstop=4
# 输入tab时自动将其转化为空格
set expandtab
## 自动缩进模式
set smartindent

常用命令

以下命令虽然多,大部分都是常用的,多练练形成肌肉记忆就好了

查找

命令模式下,输入/word后回车,即查找word,按n查找下一个匹配单词,按N查找上一个匹配单词

跳转

  • w 下个单词的首部(向后)
  • e 当前光标最近处的单词的尾部(向后)
  • b 当前光标最近处的单词的首部(向前)
  • ^ 跳转到行的开始
  • $ 跳转到行的结束

删除单词

  • daw 删除光标所在单词(delete a word)
  • viwc 可视模式中删除当前单词并插入
  • bdw 删除到下一个单词开头,比如中间有空格啊就删掉了
  • D 当前光标删到行尾
  • d^ 当前光标删到行首

删除字符

  • x,删除光标所在字符
  • X,删除光标所在前字符

删除行

  • dd 删除本行
  • :1,$d,删除所有行

插入

  • i:在当前字符的左边插入
  • I:在当前行首插入
  • a:在当前字符的右边插入
  • A:在当前行尾插入
  • o:在当前行下面插入一个新行
  • O:在当前行上面插入一个新行
  • gg:跳至文件开始
  • G:跳至文件结束

复制粘贴,普通模式

  • yy 复制本行
  • p 粘贴
  • 复制光标所在当前单词 yaw
  • 剪切小括号内的 dib,包括小括号dab

替换,命令模式

  • 替换所有匹配为另一个 :%s/"//g (匹配到所有"并置为空)

有用(待整理归并)

command mens
ctrl + d ctrl + u 向上 向下滚屏
ZZ 保存并退出
:e! 不保存文件并重载
* 向下查找当前光标所在单词
:set hlsearch 高亮查找内容
:noh 取消高亮
:noh turn off the highlight until the next search
viw 选中当前单词
p paste
ciw change inner word
cw change the word from the current cursor position
:set so=999 随时使光标位于屏幕中央
:set so=0 恢复光标位置普通模式
ggVGu 格式化文件大小写
u 撤销
ctrl+r 撤回撤销
vim -r *.swp 对于操作文件时异常退出产生的.swp.swo文件处理
ctrl+s 锁屏
ctrl+q 解锁
ggVG 全选
:w !sudo tee % > /dev/null 编辑完文件准备保存缺发现未有权限保存
c 修改
d 删除
y 复制
g~ 反转大小写
gu 转换为小写
gU 转换为答谢
> 增加缩进
< 减少缩进
= 自动缩进
!
ga 查看当前字符的unicode编码w

搜索

命令 用途
f{char} 正向移动到下一个{char}
F{char} 返向移动到上一个{char}
t{char} 正向移动到下一个{char}所在之处的前一个字符
T{char} 返向移动到下一个{char}所在之处的后一个字符
; 重复上次的字符查找命令
, 反转方向查找上次的字符查找命令

替换模式

r是我较常用的命令之一,如91需要更改为98,则光标移动到1上,分别按r8即可,替换完会立刻回到普通模式,相当于常用的xi{char}<ESC>

可视模式

命令 用途
v 面向字符的可视模式
V 面向行的可视模式
<C - v> 面向列块的可视模式

注释符"

" some need be comment

块选择

`$` to jump to the end of the line you're on (to be over the opening brace)
`v` to begin a selection (V for whole lines)
`%` to jump to the matching brace.
`j` to go down one line so your cursor is inside the braces you are trying to select
`v` to begin a selection (V for whole lines)
`i{` select everything inside the braces

so `di}`,`ci}`,`vi}` is best practice

文档

1.管道符,重定向(TODO)

# url
https://zh.wikipedia.org/wiki/重定向_(计算机)

2.常见操作符

http://vimdoc.sourceforge.net/htmldoc/motion.html#operator

以上文档不定时更新优化。


em0t
758 声望23 粉丝

Talk is cheap, show me the code


« 上一篇
yum - epel源

引用和评论

0 条评论