vi编辑器,超级基础的入门笔记(待完善)


Vi有三种编辑模式:command , insert , last-line

insert←→command←→last-line


模式1-命令模式(学习vi主要就是学习其中的命令,所以命令模式在初级阶段最重要),vi打开的时候默认是命令模式,如果不确定是什么模式,可以多按几次esc键,即可进入命令模式。
 
命令模式的移动命令
                 k                                 光标向上移
          h             l                   左移           右移
                 j                                     下移
hjkl 4个方向键,还能在这些动作命令的前面加上数字,比如 3j,表示向下移动3行
n<space> 光标向右移动n个字符
n<Enter> 光标向下移动n行
nG 移动到这个文件的第n行
0 移动到这行的第一个字符处
$ 移动到这行的最有一个字符处

H 光标移动到这个屏幕最上方的那一行
M 光标移动到这个屏幕中央的那一行
L 光标移动到这个屏幕最下方的那一行
G 光标移动到文件的最后一行
gg 光标移动到文件的第一行
B 跳过一个单词
Ctrl b 向上翻一页
Ctrl u 向上翻半页
Ctrl e 向下翻一行
Ctrl f 向下翻一页
Ctrl d 向下翻半页
Ctrl g 显示当前光标所在行以及文件状态
[number] shift+g 跳到指定的number行
 
w 在单词开头向前移动
e 在单词结尾向前移动
b 在单词开头向后移动
ge 在单词结尾向后移动
 
fx  向右搜索x,并移动到x的位置,此时f=find,接受命令计数
; 向右查找
, 向左查找
Fx  向左搜索
tx  向右移动到x的前面
 
ZZ  退出vim
 
i 在光标之前进入插入模式
a 在光标之后进入插入模式

I 在光标所在行的行首进入插入模式
A 在光标所在行的行末进入插入模式
o 在光标所在的行的下面进入插入模式
O 在光标所在的行的上面进入插入模式
s 删除光标后的一个字符,然后进入插入模式
S 删除光标所在的行,然后进入插入模式
 
删除类命令
x 向后删除一个字符
X 向前删除一个字符
#x 删除几个字符,#表示数字,比如3x
级联删除类命令格式:[number] d object
  number 代表执行命令的次数
  d 代表关键字delete
  object 代表命令要操作的对象,包括
      w(光标到后面一个单词,包括空格),
      e(光标到后面一个单词,不包括空格),
      $(光标到当前行末),
      d(光标所在的当前行)
      1G(第一行)
      G(最后一行)
  eg:dd 删除一行
          #dd 删除多行,比如3dd 表示删除光标行及光标的下两行
          d1G 删除光标所在行到第一行的所有数据
J 清除光标所处的行与上一行之间的空格,把光标行和上一行接在一起
u 撤消本次修改或删除操作
U 撤销本行的所有更改
ctrl+r 撤销以前的撤销命令
 
复制类命令
p 在光标之后粘帖
shift+p 在光标之前粘帖
y 复制选中内容
 
变更类命令
r 将光标移动到要变更的地方按r,然后输入新的字符
R 从光标所在处开始进行连续更改
~ 变更字母的大小写
 
级联更改类指令格式:[number] c object
  w 单个单词不包括空格    eg:2cw  删除两个单词,进入插入模式
  e 单个单词不包括空格
  $ 从光标到行末
 
查找命令
/SEARCH   正向查找,按n键把光标移动到下一个符合条件的地方;
?SEARCH   反向查找,按shift+n 键,把光标移动到下一个符合条件的
% 用来跳转到匹配的括号
 
. 表示重复执行上一个命令
 
记录宏:
1.使用 q{register} 开始,{register}必须是a-z之间的一个字母
2.执行操作
3.按q键结束记录
通过 @{register} 执行刚才的宏
 
v  进入可视模式,用来选择文本
V 进入可视行模式
Ctrl v  进入可视块模式
o 可视模式下移动光标

模式2-输入模式(进入输入模式后,就等同于进入普通的文本编辑器一样,可以进行各种形式的输入,也可以使用插件来完成各种各样的高级功能,甚至能达到类似visual studio IDE环境的效果)

模式3-末行模式(首先确认是在命令模式下,否则无法转变为last line模式,然后按shift+;也就是:即可进入末行模式。末行模式主要是用来开启各种内置功能的区域)
 
:split 横向分离编辑区
:vsplit  纵向分离
:only  保留当前编辑区
Ctrl w  切换编辑区
 
替换命令
:s /the/THE/g 把光标所在的行,把所有单词the,替换成THE
:%s /the/THE 把整篇文档的所有的the都替换成THE
:1,10 s /the/THE/g 仅仅是把第1行到第10行中的the,替换成THE
:s/the/THE/gc 替换每一处时进行确认提示
:set ic 查找时忽略大小写
:set hls is
:set nu  显示行号

:wq  存盘退出
:q!不存盘退出
:X  加密当前文件
:! 其后可以加入shell命令然后回车用以执行
:w NAME  将当前整个文件保存为NAME
:#1,#2 w NAME  将当前文件的#1到#2行间的内容保存到NAME文件
:r filename  将filename文件内容提取到当前文件中
:e! 放弃所做修改重新编辑
:mksession ~/.vim/mine.vim  保存当前会话