Wscats / articles

🔖My Learning Notes and Memories - 分享我的学习片段和与你的回忆

Home Page:https://github.com/Wscats/articles

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Vim笔记

Wscats opened this issue · comments

Vim笔记

Vim是个很好的编辑器,远古神器嘛,当你熟悉了这个编辑器你的逼格是不是瞬间就会高了许多
首先安装vim
当然学习一个编辑器都是为了方便自己,提高效率,可是vim这个文本编辑器的学习曲线是陡峭的
但苦练会让你带来搞效率
而我自己在用git命令的时候再配合vim确实是很强大的开发组合,虽然vim没有代码提示,但是它本身其实是有很多的插件供使用的,当我们git提交代码的时候,用vim来对代码进行解决冲突和编辑都是非常方便的
VIM下载
vim
启动vim

image

i
Insert模式,按 ESC 回到Normal模式
反正如果不知道现在是在什么模式下,就一直按ESC,回到Normal模式,下面功能键都是在Normal模式触发的

image

此时Insert模式跟记事本一样

image

操作vim会经常在这两个模式下切换,就如同在记事本中你在选项卡和编辑内容窗口中切换一样

image
image

只不过这里大部分变成了键盘操作
所以在Normal模式下,键盘上所有的键都变成对应的功能键了,就如同我们按c跟按ctrl+c一样,c在后面就变成了对应的功能键了

x
Normal模式下,按x删除当前光标所在的一个字符

image

其实这个相当于Insert模式下的退格键

:wq
保存+退出vim(:w 保存 :q 退出) 后面跟文件名

image

这个相当于记事本中的文件->(保存)另存为

dd
删除当前行,并把删除的行保存到剪贴板里面,也是IDE里面常用的,快速删除一行代码,不用长按退格了

p
粘贴剪切板,这个功能挺常用的,如果在外面复制完东西,直接在vim界面按p就可以粘贴了

yy
复制当前行到剪切板

da811428-28e3-11e6-92a6-cf371a09e4e9

help
显示相关命令的帮助

image

:q
退出
:q!
不保存直接退出

image

a
在光标后插入,如果本来光标不在最后就会自动帮你定格到最后输入

image

o
在当前行后面插入一个新行,相当于记事本一行的最后敲回车键

image

0
按数字0就是到行头,跟a是相反的

image

^
这个是要结合shift+6,到本行第一个非blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)

$
光标切换到本行行尾

/pattern
搜索 pattern 的字符串

如果搜索出多个匹配,按n可以定位到下一个

u
撤销 就是Undo
这个功能基本IDE都是有的,挺常用的,如同我用PS时候ctrl+z那样方便

ctrl+r
重做 也就是Redo

:e <文件路径/文件名>
打开一个文件,这个在cmd中我常常cd到指定目录,然后dir显示再用vim来打开相应的文件来进行编辑

image

:w
保存

image

保存后会出现written的提示

image

:saveas <文件路径/文件名>
另存为

image

保存成功后也会出现written的提示

image

有一点需要注意的是如果只是保存或者另存为但是一直没有退出vim编辑的话,文件会一直以下图后缀在文件夹

image

但是如果保存并退出了,就会变成保存时候定义的文件名和后缀了

image

:x
ZZshift+z
:wq
上面这三个都是保存并退出,注意ZZ是不需要输入冒号和回车的
image

:q!
退出但不保存
:qa
强行退出所有的正在编辑的文件,就算别的文件有更改

:bn
:bq
有时候我们需要打开多个文件,就是在一个文件已经打开的情况下我们可以继续用:e来打开其他文件,当打开多个文件的时候,可以使用上面这两个命令来切换下一个或者上一个文件

image

.
这个命令可以重复执行自己运行的上一个命令

N<命令>
打这个的时候是不可见的,也就是盲打
N就是输入一个数字,比如我输入9p,就会出现下图这个

image

G
将光标定位到最后一行的头部

image

w
到下一个单词的开头。
e
到下一个单词的结尾。

  • 如果你认为单词是由默认方式,那么就用小写的e和w。默认上来说,一个单词由字母,数字和下划线组成
  • 如果你认为单词是由blank字符分隔符,那么你需要使用大写的E和W。

*和#
当你把光标放到catwsscat上的时候按*或者#就会移动到匹配该单词的上一个或者下一个

  • *在键盘左边是匹配上一个单词
  • #在键盘右边是匹配下一个单词

image

%
匹配括号移动,支持(,{, [,你需要把光标先移到括号上

image

v
进入可视化选择后按键盘的上下左右的方向键都会帮你自动选择

qq 20160603100040

可视化选择下
J → 把所有的行连接起来(变成一行)
< 或 > → 左右缩进
= → 自动给缩进 (这个确实挺方便的)