PART Ⅰ : 容器云OPENSHIFT
- 安装
- 数据持久化
- 集群管理
- 数据持久化
- 管理
- 网络
- 安全审计
- 工具应用部署
PART Ⅱ:容器云 KUBERNETES
- 基础
- 原理
- 系统应用/网络CNI/TRaefik
- 安装
- 集群管理
- 用户认证ServiceAccount与授权策略RBAC
- K8S应用管理工具Helm
- 问题
- 辅助工具
- Doing:K8S 多集群管理与网络互联
- VM On K8S
PART Ⅲ:持续集成与持续部署
- CICD优化总结
- Jenkins
- Gitlab
- Drone
- Nexus
- 配置
- 使用OrientDB Console在DB层面修改配置
- [设置SMTP邮件服务](https://www.wenjiangs.com/doc/krrcu7ebin9hh
- 仓库管理
- 数据备份恢复
- API
- Jenkins相关插件
- 配置
- SonarQube静态代码扫描分析
- LDAP
- Apollo
- 项目管理工具
- Jira
- Redmine
- Harbor
- Vault
- Alfred
- Web IDE: VSCode
- DolphinScheduler
PART Ⅴ:日志/监控/告警
- Logging
- Kafka/Zookeeper
- Filebeat
- Metrics
- Tracing
- Sentry日志聚合告警平台
PART Ⅵ:基础
- Docker
- Shell脚本
- Mave
- git
- 正则表达式
- SSL/TLS
- Ceph
- 性能压力测试
- PXE+Kickstart
- netboot.xyz
- Tool
- Windows
- MacOS小技巧
- Linux
- Linux排错优化
- iptables详解
- MySQL
- Redis
- 负载均衡与代理
- 代理服务器
- Nginx
- GitBook
- Telegram机器人
- OpenVPN Server
- iDRAC
- vSphere
- Raspberry Pi树莓派
- 钉钉机器人
- Aliyun CLI
- 音、视频处理工具:fffmpeg
- 图片处理工具:Imagemagick
- PDF处理工具:Ghostscript
- Nvidia
- Virtualbox 虚拟机管理
- 阿里云产品使用总结
- RustDesk:可自建远程控制软件
- Poste:自建邮件服务器
- 使用 Jlink构建最小化依赖的 JRE 环境
- Aria2
- Asuswrt-Merlin
- Trap:Shell脚本信号跟踪
- 零散知识汇总
- BarkServer通知
- Synology
PART Ⅶ:数据存储、处理
PART VIII:CODE
- Python学习笔记
- 基础语法
- statik 将静态资源文件打包到二进制文件中
- HTML/CSS 学习笔记
- JavaScript学习笔记
PART X:HACKINTOSH
PART XI:安全
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
Vim小技巧
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/e | 2w表示向后移动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 | |
在光标前面插入一个tab | Ctrl+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
5、空格与 tab的替换
TAB替换为空格:
:set ts=4
:set expandtab
:%retab!
空格替换为TAB:
:set ts=4
:set noexpandtab
:%retab!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论