vim 笔记

Eric 2021年07月27日 773次浏览

清空文件

$ sudo vim test.txt
# 进入文件编辑模式
gg
# 进入行首
dG
# 文件内容将被全部清空
:wq
# 保存退出

选取一个单词

原文地址

viw 它的作用是选取一个单词(word),无论光标在这个单词的哪个位置都能选中整个单词

每日一Vim(18)Text-Object

前两节讲了Visual mode相关内容,这里提一个小问题,“如何选择一个单词?”3秒后…,你可能会使用命令vw,很不幸的是它会把下一个单词的首字母也选中。如果你足够细心的话,你会发现答案在之前的章节中讲过,命令是:viw。它的作用是选取一个单词(word),无论光标在这个单词的哪个位置都能选中整个单词,那么i到底有什么作用呢?这就是今天要讲解的内容。

Text-Object:可以指一个单词,一整句文本,抑或一对括号内的文本,甚至是html或xml标签内的文本,都可以抽象成Text-Object。与Text-Object紧密相关的两个命令就是a和i,啊?这两个命令不是append和insert吗?其实,a和i操作在Visual mode或者某些操作(比如:d,y等)后面就是另外一种效果了。例如,删除一个单词可以用daw或者diw。那么a与i又有什么区别呢?

a会选择一个对象(an object)包括空格在内,而i只会选择一个对象的内部(an inner object)不包含空格

下面就是一些命令含义:

aw a word
iw inner word
aW a WORD
iW inner WORD
as a sentence
is inner sentence
ap a paragraph
ip inner paragraph
a[|] a[] block (这里的'|'是或的意思,也就是说'a['和'a]'都表示一个[]块)
'{} &al;>()与[]作用类似
at a tag (这里的tag可以是html或xml中任何标签对)
it inner tag

比如在一个html文件中,当前光标在某个标签对的内容里头的时候,命令dat会把整个标签对包括内容都会删除,而dit只会删除标签对之间的内容,保留标签对。详细说明可以:help text-objects

快捷健

ctrl + o 回退一次光标位置
ctrl + i 前进一次光标位置(通过 ctrl + o 返回后,再前进有效)

NERDTree

ctrl + w + h 光标定位到目录
ctrl + w + l 光标定位到文件
ctrl + w + w 光标在文件和目录间切换