vim第一个小技巧:有时当我们使用普通用户打开一个文件,修改了很多内容,在保存的时候才发现没有权限,此时需要使用sudo来写入,命令如下:
:w !sudo tee %
vim常用设置:(写入 /etc/vimrc 文件或者~/.vimrc,永久生效)
set nu! " 显示行号
set tabstop=4 " tab键为4个空格
set autoindent " 换行自动缩进
set shiftwidth=4 " 自动缩进时的宽度
set ts=4 " tabstop的宽度
set softtabstop=4 " 退格键
set paste " 粘贴时不自动换行
set laststatus=2 " 显示当前文件名
%retab! " vim属性修改后需要执行此命令重载属性配置
也可在终端设置是否显示行号:
:set nu " 显示行号
:set nonu " 不显示行号
将所有tab,每个tab替换为4个空格
:set ts=4
:set expandtab
:%retab!
将所有空格以4个为单位,替换成tab
空格替换为TAB:
:set ts=4
:set noexpandtab
:%retab!
vim字符串替换
:s/old/new/ " 当前行old的第一次出现改为new
:s/old/new/g " 当前行所有old改为new
:50,100s/old/new/g " 当前文件50到100行所有old改为new
:1,$s/old/new/g " 当前文件所有old改为new
:%,$s/old/new/g " 当前文件所有old改为new
撤销和恢复
u:撤销上一步的操作
Ctrl+r:恢复上一步撤销的操作
如果在终端要使用vim打开多个文件,可以:
横向分割显示:
vim -o filename1 filename2
纵向分割显示:
vim -O filename1 filename2
如果已经用vim打开了一个文件,想要在窗口中同时再打开另一个文件(其中,vs可以用vsplit替换,sp可以用split替换,如果finename不存在,则会新建该文件并打开):
横向分割显示:
:vs filename
纵向分割显示:
sp filename
关闭光标所在的窗口
:q
或
:close
关闭除光标所在的窗口之外的其他窗口
:only
关闭所有窗口
:qa
切换窗口
ctrl + w w " 即按住ctrl键,再按两下w键。
或
ctrl + w " 即按住ctrl键,按一次w键,再按一次表示方向的h或j或k或l,则光标会切换到当前窗口的 左|下|上|右 侧的窗口
文件间切换
Ctrl+6 " 下一个文件
:bn " 下一个文件
:bp " 上一个文件
vim 临时退出
方法一
Ctrl+Z " 同时按下Ctrl+Z,vim进程会被放到后台去运行,此时退出到Linux终端。
fg " 在Linux终端输入 fg 并回车,此时刚才的 vim 进程会被重新拉到前台来运行,继续刚才的编辑任务。
方法二
:sh " 命令模式下,输入 :sh 并回车,此时回到Linux终端。
exit " 直接在 Linux 终端输入 exit 并回车,此时回到刚才的 vim 编辑器中,继续刚才的任务。
这两种方法实现机制不一定,但效果一样,都非常快捷有效。