大学初期,有次聊到编辑器的选择,有个学长告诉我们“学VIM吧,什么都能写”,看到网上有大多数教程都是直接vim编辑文本,看着用法简单。当时兴致冲冲的切到U盘安装的Linux的Ubuntu系统,有自带vim,创建了个网页文本,就用vim 1.php
打开了文本,然后就出不来了。。之后就开始看文档做实验,结果可以在vim中生存下来了。我推荐了一本书刘遄编写的《Linux就该这么学》,里面教程基于Linux系统RHEL 7编写,但是教程通用于Ubuntu,所以我就没安红帽子了。
所谓在Vim中生存下来,你只需要知道下面这几个命令:w
保存:q
退出hjkl
分别是上下左右i
在光标前进入编辑模式ESC
退出编辑模式
打开vim编辑器的方法是在shell中输入vim filename
,如果是新建就直接写新文件的名称。
知道这些就可以简单使用Vim了,这也就是我当时能做到的极限,毕竟刚刚接触vim没有鼠标可以用真的是非常难受了。
在Vim中活得很好
工作之后需要用到的地方变多,就有了更多需求,所以需要进一步了解。
(以下加粗的为常用命令)
一般模式、插入模式(INSERT)、命令模式、可视模式(VISUAL)
进入编辑器之后,默认是一般模式。
一般模式:键盘上的字母都是快捷键,不能输入文本,你可以使用快捷键移动光标,翻页,复制粘贴,搜索替换,找地方开始写代码等等。
插入模式:在一般模式下使用aio
等命令可以进入插入模式,插入模式下就可以写代码了,hjkl也就不再是移动光标,而是输入对应的字母,编辑完成可以使用ESC回到一般模式。
命令模式:可以使用:
进入命令模式,命令模式用于操作当前文件或者配置vim,保存,另存为,退出等。
可视模式:使用v
或者V
进入可视模式,v
进入的是以字符为最小单位的可视模式,V
进入的是以行为单位的可视模式,当你选定了一定的段落或者字符之后,可以进行删除复制等操作。
方向移动
hjkl
分别表示←↓↑→,30j 表示光标向下移动30行,请举一反三<Ctrl>+f
屏幕向下移动一页,相当于 <Page Down>按键<Ctrl>+b
屏幕向上移动一页,相当于 <Page Up> 按键<Ctrl>+d
屏幕向下移动半页<Ctrl>+u
屏幕向上移动半页+
光标移动到非空格符的下一行-
光标移动到非空格符的上一行n<Space>
n为数字。光标向后移动 n 行n<Enter>
n为数字。光标向下移动 n 行0或功能键<Home>
这是数字0:移动到这一行的最前面字符处$或功能键<End>
移动到这一行的最后面字符处^
行首的第一个非空白字符H
光标移动到这个屏幕的最上方那一行的第一个字符M
光标移动到这个屏幕的中央那一行的第一个字符L
光标移动到这个屏幕的最下方那一行的第一个字符G
移动到这个档案的最后一行nG
n为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行gg
移动到这个档案的第一行,相当于1Gw
移至下一个单词的词首nw
n为数字。移动n个单词e
跳至当前或下一个单词的词尾b
跳至当前或前一个单词的词首
删除 复制 粘贴
x,X
在一行字当中,x 为向后删除一个字符 (相当于 < Del>按键), X 为向前删除一个字符(相当于 <Backspace> 亦即是退格键) nx
n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符,10xdd
删除游标所在的那一整行ndd
n为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 d1G
删除光标所在到第一行的所有数据dG
删除光标所在到最后一行的所有数据d$
删除游标所在处,到该行的最后一个字符d0
那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符yy
复制游标所在的那一行,复制命令的其他组合用法与删除命令用法一致p,P
p为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行J
将光标所在行与下一行的数据结合成同一行c
重复删除多个数据,例如向下删除 10 行,10cju
复原前一个动作<Ctrl>+r
重做上一个动作.
重复上一次的修改
搜索替换
/keyword
搜索指定关键字?keywork
从文件末尾开始搜索关键字n
下一个N
上一个
切换编辑模式
i,I
进入插入模式(Insert mode):i 为『从目前光标所在处插入』, I 为『在目前所在行的第一个非空格符处开始插入』a,A
进入插入模式(Insert mode):a 为『从目前光标所在的下一个字符处开始插入』, A 为『从光标所在行的最后一个字符处开始插入』o,O
进入插入模式(Insert mode):这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处插入新的一行』; O 为在目前光标所在处的上一行插入新的一行!r,R
进入取代模式(Replace mode):r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止
命令
:w
保存:w filename
另存为:wq
保存退出:wq!
强行保存退出:set ai
自动缩进:set noai
取消自动缩进:set nu
显示行号:set nonu
取消显示行号
配置文件
/etc/vimrc
针对所有用户~/.vimrc
针对当前用户
一般模式
插入模式
命令模式
可视模式
vim针对的是Linux的程序源代码 或者文档编辑可以直接在终端内写,相对于基础点的还是nano好点
原来是个大佬