Vim的工作模式:
- 命令模式 按i或者a进入编辑模式 按:或者/或者?进入末行模式
- 编辑模式 按Esc进入命令模式
- 末行模式 按回车回到命令模式
编辑模式下:
移动光标:h(左)j(下)k(上)l(右)
数字+光标键 向光标键方向移动多少量
100j 向下100行
0 -> 去到行首
$
-> 去到行尾
G -> 去到最后一行
gg -> 回到第一页
dd 或者 数字+dd -> 从光标所在位置删掉多少行内容
d$ -> 从光标所在位置删到行尾
d0 -> 从光标所在位置删到行首
dw -> 删除单词
u -> 撤销
ctrl + b -> 往上翻一页
ctrl + f -> 往下翻一页
ctrl + y -> 往上翻一行
ctrl + e -> 往下翻一行
ctrl + r -> 重做(与u相反)
ctrl + w 按两下 -> 切换窗口
yy -> 复制一行
数字+yy -> 从光标所在位置复制多少行
p -> 粘贴
末行模式:
set nu -> 显示行号
set nonu -> 取消行号
syntax on / off -> 打开/关闭高亮语法
ls - 显示打开的文件
b
sp - 水平拆分窗口
vs - 垂直拆分窗口
w - write - 保存
q - quit - 退出
可以加!强制执行
map 映射快捷键(命令模式下的)
imap 映射快捷键(编辑模式下)
inoremap 映射快捷键(编辑模式下),不要递归 (nore不要递归)
ZZ -> 保存退出(命令模式下)
~/.vimrc - vim的配置文件
意外中断,会产生一个隐藏的swp文件,按R恢复,回车进入继续编辑
D删除这个swp文件
:q! -> 强行退出
!v 重新执行以v开头的命令
文件权限与执行
# coding: utf-8
-> python2中需要写上这句才能识别中文
#!/usr/bin/python
-> 到/usr/bin/目录下面找到python解释器,使用这句可以直接使用hello.py执行hello.py程序
-rw-r--r-- 1 root root 103 Nov 14 11:43 hello.py
第一个字符
d - 文件夹
l - 软链接
-
- 文件
第2-4个字符:文件的所有者对文件有何种操作权限
r - read - 读权限
w - write - 写
x - execute - 执行
第5-7个字符:和文件所有者同组的用户对文件有何种操作权限
第8-10个字符:其他用户(不是所有者,也不是同组用户)
chmod -> 改变文件的权限
chmod u+x hello.py (u为当前用户,x是执行权限)
chmod g+x,o+x hello.py (g为同组用户,o是其他用户)
chmod u-x,g-x,o-x hello.py (去掉x权限)
chmod 755 fish.py (给所有人添加x权限)(-rwxr-xr-x -111(7)101(5)101(5)) 755和644比较常见
chown -> 改变文件的所有者(change owner)
chown yuxiaoyu hello.py -> 将hello.py的所有者给yuxiaoyu用户
chgrp -> 改变文件所在的用户组
touch已经创建了的文件可以改变访问时间
./hello.py -> 在当前路径下执行hello.py
2to3 -w hello.py -> 将hello.py从python2转换为python3(解释器需要手动改)
print (f'公鸡: {x}, 母鸡: {y}, 小鸡: {z}')
不要相信小数的相等运算,例如0.1 + 0.2 == 0.3结果为false
打开多文件
vim -d chicken.py fish.py 对比查看
vim 文件1 文件2 文件3 ……
回到命令模式,再进入末行模式,输入ls,记下文件的序号,回车回到命令模式,进入到末行模式,b 序号 切换文件
拆分窗口:
进入末行模式,输入sp, 按两下ctrl + w光标会切换到第二个窗口,再按两下ctrl + w光标切换到下一个
在其他窗口的末行模式输入b 序号 可以在此窗口打开其他文件
进入末行模式,输入vs, 按两下ctrl + w光标会切换到第二个窗口,再按两下ctrl + w光标切换到下一个
末行模式输入qa,关闭所有窗口
末行模式输入q,关闭光标所在窗口
vim 安装一个名为YouCompleteMe插件可以补全代码
wget http://www.sohu.com -O sohu.html 下载时重命名