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 以及 fg 这两个命令组合。
这一解决方法主要利用了 Linux/Unix 的作业机制。
具体原理是:Ctrl-z 命令将当前的 Vi/Vim 进程放到后台执行,之后 shell 环境即可为你所用;
fg 命令则将位于后台的 Vi/Vim 进程放到前台执行,这样我们就再次进入 Vi/Vim 操作界面并恢复到原先的编辑状态。
方法二:使用行命令 :sh。
在 Vi/Vim 的正常模式下输入 :sh即可进入 Linux/Unix shell 环境。在要返回到 Vi/Vim 编辑环境时,输入 exit 命令即可。
这两种方法实现机制不一定,但效果一样,都非常快捷有效。