返回介绍

PART Ⅰ : 容器云OPENSHIFT

PART Ⅱ:容器云 KUBERNETES

PART Ⅲ:持续集成与持续部署

PART Ⅴ:日志/监控/告警

PART Ⅵ:基础

PART Ⅶ:数据存储、处理

PART VIII:CODE

PART X:HACKINTOSH

PART XI:安全

Vim小技巧

发布于 2024-06-08 21:16:46 字数 9789 浏览 0 评论 0 收藏 0

bash -c 'cat > ~/.vimrc <<EOF 
"=========================================================="
"设置tab键替换为两个空格"
set ts=2
set expandtab
%retab!
"=========================================================="
"设置在状态行显示文本及编码格式的信息"
set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\ 
"=========================================================="
"高亮显示搜索到的所有文本"
"set hlsearch"
"=========================================================="
"自动对齐上一行"
set autoindent
set smartindent
EOF'
功能命令描述
水平分屏:sp水平分屏打开另一个文件
垂直分屏:vsp垂直分屏打开另一个文件
多屏间切换Ctrl+W+W
多屏退出:qall
排序:sort
去除重复行:sort u
移动到文本开头gg
移动到文本结尾G
移动到行首0即行首有空格的情况,会移动到空格之前
移动到行末$即行末有空格的情况,会移动到空格之后
向下翻页Ctrl+f
向上翻页Ctrl+b
以word为单位移动单词数+W/b,B/b,E/e2w表示向后移动2个word; 2b表示向前移动2个word; 2e表示向后移动2个word(但是会移动到word字符之后) 如果想忽略标点符号的word,就用大写 W B E
行内查找字符f+字符向后移动到某字符
F+字符向前移动到字符a处
全文查找当前光标处的单词*向后查找
#+字符从文件开头到文件尾开始查找匹配字符
?+字符从文件尾倒着到文件开头开始查找匹配字符
光标右边最近数字进行自加Ctrl+A
光标右边最近数字进行自减Ctrl+X
删除文本中的空行:g/^$/d
注释文本行v进入视图模式,选择要注释的行,然后Ctrl+v进入块选择模式,然后大写I插入#或者/,再ESC退出
:起始行号,结束行号s/^注释符//g在10 - 20行添加 // 注释 :10,20s#^#//#g 在10 - 20行添加 # 注释 :10,20s/^/#/g
快速搜索光标所在单词Shift+*
显示匹配个数:%s/xxx//gn
功能命令描述
删除光标前面的单词Ctrl+W
删除光标前面的一行Ctrl+U
在光标前面插入一个tabCtrl+I
将光标以下所有内容向上提Ctrl+H
将光标以下所有内容向下提Ctrl+J/M
向下联想Ctrl+N
向上联想Ctrl+P

1、行首或行尾加字符

#每行行首加“#”
:%s/^/#/g

#每行行尾加" ;\"
:%s/$/ ;\\/g

#第二行到第十五行的行首添加“==”
:2,15 s/^/==/g

#第二行到文本末行的行首添加“==”
:2,$ s/^/==/g

#第二行到文本首行的行首添加“==”
:2,1 s/^/==/g

2、将文本中相同数字进行自增

原始文本

docker save -o 1.tar docker.io/openshiftistio/origin-ansible:0.7.1 ;\
docker save -o 1.tar docker.io/openshiftistio/origin-ansible:0.8.0 ;\
docker save -o 1.tar docker.io/skydive/skydive:latest \
:g/1.tar/ s//\=line('.').'.tar'/

效果文本

docker save -o 1.tar docker.io/openshiftistio/origin-ansible:0.7.1 ;\
docker save -o 2.tar docker.io/openshiftistio/origin-ansible:0.8.0 ;\
docker save -o 3.tar docker.io/skydive/skydive:latest ;\

3、去除文本中的换行符^M

Windows下保存的文本文件,上传到Linux/Unix下后总会在末尾多了一个换行符^M,导致一些xml、ini、sh等文件读取错误

进入命令模式

%s/^M//g (注意,^M = Ctrl v + Ctrl m,而不是手动输入^M)

# ^M 表示清除成功

4、设置粘贴时换行问题

有些版本vim的默认配置下,在插入模式下粘贴文字会换行加tab缩进,例如

line
  line
    line

在命令行中设置或在配置文件中设置

:set paste

参考:https://stackoverflow.com/questions/2514445/turning-off-auto-indent-when-pasting-text-into-vim/2514520

5、空格与 tab的替换

TAB替换为空格:

:set ts=4
:set expandtab
:%retab!

空格替换为TAB:

:set ts=4
:set noexpandtab
:%retab!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文