vim基本操作
VIM 的三种模式,刚进去的时候是命令模式
以下操作都是基于命令模式
常用操作
<!-- 复制 -->
yy 复制一行
(n)yy 复制多行 eg: 6yy 复制6行
y$ 复制光标到行末(包括光标)
y^ 复制光标一直到行首(不包括光标)
<!--粘贴 -->
p 粘贴
<!-- 剪切/删除 -->
dd 剪切/删除一行
(n)dd 剪切/删除多行 eg: 6dd 剪切/删除6行
d$ 剪切/删除光标到行末(包括光标)
d^ 剪切/删除光标一直到行首(不包括光标和空格)
D 剪切/删除光标到行末(包括光标)
d0 剪切/删除光标一直到行首(包括空格但是不包括光标)
x 删除光标所在的字符(往后删除)
X 删除光标的前一个字符 (往前删除)
<!--撤回-->
u 撤回
ctrl+r 反撤回
. 重复上一次操作
<!-- 修改 -->
r 修改光标所在的字符
R 进入替换状态,修改多个
<!-- 整行后移 -->
>> 整行往后移
<< 整行往前移
<!-- 选中一块代码 -->
v 从光标开始位置选中多行
V 选中多行
<!-- 查找和替换 -->
:%s/str1/str2/g 用str2替换全文的str1
:12,20s/str1/str2/g 找出第12行到第20行的str1,并用str2替换
光标操作
<!-- 上下左右 -->
h 左 j 下 k 上 l 右
<!-- 翻页 -->
ctrl+d 向下半页
ctrl+f 向下一页
ctrl+u 向上半页
ctrl+b 向上一页
<!-- 快速定位 -->
G 光标快速定位最后一行
gg 光标快速定位第一行
H 光标快速定位可视区域内首行
M 光标快速定位可视区域内中间
L 光标快速定位可视区域内末行
<!-- 移动 -->
0 光标跳到行首
^ 光标跳到第一行的第一个非空白符
$ 光标跳到行末
w 光标移动到下一个单词的第一个字母
b 光标移动到上一个单词的第一个字母
保存操作
:q 退出,如果内容以改变,则不退出
:q! 强制退出,不保存更改
:w 保存更改
:wq 保存并退出
:x 保存退出
权限
在将权限之前,我们先来看下面的一个文件详情
-rw-rw-r-- 1 pyvip pyvip 36 Feb 3 14:48 demo.py
<!--
第一列9个字母表示文件或目录的权限
r 表示读 w 表示写 x表示执行
第二列表示 文件的硬链接个数
第三列表示文件拥有者
第四列表示文件拥有者所在的组
第五列表示文件大小,如果是目录,表示目录大小,注意是目录本身大小,而不是目录及其下面的文件总大小
第六列表示文件或目录的最近修改时间
-->
接下来我们把重点放在第一列上,
-rw-rw-r--
,那么不用说,第一个-
表示的是一个文件类型,主要是在后面的rw-rw-r--
,我们要把后面的9个,分成3组。三个一组
rw-
第一组表示用户的自己的权限 (user)
rw-
第二组表示用户所在组的权限(group)
r--
第三组表示其它用户的权限 (other)
上面的应该好理解,那么,这么权限能做什么呢,比如 r
就是表示是否可读,接下来,分别讲解下 r w x
三个字母表示的含义
r
表示是否可读,如果没有r
权限,是个目录的话,则不能去ls
查看,是个文件的话,则不能去cat
查看
w
表示是否可写,如果没有w
权限,是个目录的话,则不能去mkdir
创建目录文件,是个文件的话,则不能去touch
创建一个文件
x
表示是否可执行,如果没有x
权限, 要是个目录, 则不能cd
进去, 要是个文件, 就不能执行
修改权限 chmod
<!-- 字母法 -->
chmod u/g/o/a +/-/= rwx fileName/dirName
<!--
u ==> user 用户权限
g ==> group 组权限
o ==> other 其它权限
+ ==> 添加 添加权限
- ==> 移除 移出权限
= ==> 设定 设定权限
-->
eg:
<!-- 数字法 -->
chmod 775 fileName/dirName
<!--
r ==> read ==> 4
w ==> write ==> 2
x ==> 执行 ==> 1
- ==> 无 ==> 0
-->
eg: