热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

Vim常用命令及用法

Vim常用命令及用法1切换插入模式:命令模式下a(小写)光标之后进行插入A(大写)光标所在行尾进行插入i(小写
Vim常用命令及用法
 
1切换插入模式:
命令模式下
a                                (小写)光标之后进行插入
A                                (大写)光标所在行尾进行插入
i                                 (小写)光标前开始进行插入
I                                (大写)光标所在行首进行插入
o                                (小写)光标所在行后新插入一空行进行插入
O                                (大写)光标所在行前新插入一空行进行插入
插入模式下按ESC键返回命令模式
2 切换到编辑模式
命令模式下按【:】进入编辑模式,键入命令回车后自动返回到命令模式或按ESC键返回到命令模式。
3 保存文件
编辑模式下
:w                            (小写)保存文件
​:wq                         (小写)保存并退出vim
:w 文件名1            将文件另存为文件名1
:ZZ                          (大写)保存文件并退出,相当于:wq
:wq!                        (小写)文件所有者强制保存只读文件,如果不是文件所有者进行此操作,不能成功
:q!                                退出不保存文件
4 复制(yank)
命令模式下
yy或 Y                     复制光标所在整行
y^                         复制到光标所在行行首,不包括光标位置字符
y$                         复制到光标所在行行尾,包括光标位置字符
yw                         复制一个单词,光标必须在单词首部
yG                         复制到文件尾
y1G                        复制到文件首
nyy                        复制光标所在行开始的n行
5 粘贴
命令模式下
p                                (小写)粘贴到光标后
P                                (大写)粘贴到光标前
6 删除
命令模式下
x                                (小写)删除光标前一个字符
X                                (大写)删除光标后一个字符
dd                                (小写)删除光标所在整行
dw                                (小写)删除光标所在处一个单词
dG                                删除光标所在整行到文件尾
dgg                        删除光标所在整行到文件首
D                                (大写)删除到行尾,包含光标处的字符
d$                                与D效果相同
d0                                删除到行首,不包含光标处的字符
d^                                与d0效果相同
:n1,n2d                编辑模式下,删除n1-n2行
7撤销
命令模式下
u                        (小写)无限次保存前撤销(大概500多次)
ctrl+r                 redo
8 字符替换
命令模式下
r                        (小写)替换光标所在处一个字符
R                        (大写)开始替换,直到按ESC键退出替换,相当于按下键盘上到insert键
cc                        (小写)取代光标所在整行
S                        (大写)与ss(小写)效果相同
C                        (大写)取代到行尾,包括光标处字符
c0                        (小写,数字0)取代到行首,不包括光标处字符
c^                        (小写)与c0(小写,数字0)效果相同
9 字符串查找和替换
命令模式下
/string                从光标处开始向下开始查找字符串string
/查找模式下按n(小写)查找下一个,按N(大写)查找上一个
?string        从光标处开始向上开始查找字符从string
?查找模式下按n(小写)查找上一个,按N(大写)查找下一个
*                        向下完整匹配光标下的单词
#                        向上完整匹配光标下的单词
g*                        向下部分匹配光标下的单词
g#                        向上部分匹配光标下到单词
编辑模式下
:set ic                查找时,忽略大小写
:set noic        取消查找时忽略大小写
:f string        (小写f与string有空格)搜索一行中匹配到的string
:%s/old/new/g        全文将old替换为new,不提示
:%s/old/new/c        全文将old替换为new,提示是否替换
:n1,n2s/old/new/g        n1-n2行中,将old替换为new,不提示
:n1,n2s/old/new/c        n1-n2行中,将old替换为new,提示是否替换
在替换文本old或new中有/字符时,需要用\进行转义
10 显示行号
编辑模式下
:set nu(mber)                显示行号
:set nonu                        取消显示行号
:set nu!                        取消显示行号
 
11 简单排版
编辑模式下
:ce(nter)                居中显示光标所在行
:ri(ght)                靠右显示光标所在行
:le(ft)                        靠左显示光标所在行
命令模式下
J                                将光标所在下一行合并到光标所在行
>>                                光标所在行增加缩进(一个tab)
<<                               光标所在行减少缩进(一个tab)
n>>                        光标所在行开始的n行增加缩进
n<<                       光标所在行开始的n行减少缩进
12 书签
命令模式下
mx                设定书签,x是任意一个字母,通常小写(a-z),x为小写字母时,局限在一个文件之间切换;大写字母时,可在文件之间切换.
`x                (`位于数字键1旁边)跳转到书签x
编辑模式下
:marks                        查看标签
13 光标移动方式
命令模式下
H                        (大写,Head)移动到屏幕顶第一个非空白字符
M                        (大写,Mid)移动到屏幕中间第一个非空白字符
L                        (大写,Last)移动到屏幕底部第一个非空白字符
(                        (左小括号)移动到上一个句子首
)                        (右小括号)移动到下一个句子首
{                        (左大括号)移动到上一个段落首
}                        (右大括号)移动到下一个段落首
%                        光标跳转到匹配到括号处,支持{}()
[[                        光标跳转到代码块开头即{处,要求{独占一行
gD                        光标跳转到局部变量定义处
&#39;&#39;                        (两个单引号)光标跳转到上次停靠处
h                        (小写)光标左移一个字符,相当于左方向键
l                        (小写)光标右移一个字符,相当于右方向键
k                        (小写)光标垂直上移一行,相当于上方向键
j                        (小写)光标垂直下移一行,相当于下方向键
ctrl+f                (forword)向下整页翻页
ctrl+b                (backward)向上整页翻页
ctrl+u                (up)向上翻半页
ctrl+d                (down)向下翻半页
zz                        (小写)让光标所在行居于屏幕中央
zt                        (小写)让光标所在行居于屏幕最顶部
zb                        (小写)让光标所在行居于屏幕底部
编辑模式下
:n                        指定移动到第n行
14 数字前缀与重复
命令模式下
将数字加在命令前,标示该命令处理几次,如5dd标示执行5次dd(删除光标所在整行)操作。
.        (英文句号)为命令重复命令,按下一次执行一次上一次执行过的命令。
15 浏览目录
编辑模式下
:e 目录                列出指定目录下的文件和目录
16 vim技巧
技巧1 导入文件或shell命令执行结果
编辑模式下
:r 文件名1                将文件1内容引入到本文件中
:!shell命令                在vim中执行shell命令,执行完后按回车会到vim界面
:r !shell命令        (r与!之间有空格)将shell命令执行的结果导入到本文件中
技巧2 自定义快捷键操作
编辑模式下
:map ^x 命令        (map与^之间、x与命令之间有空格,此处到^并非键盘上的^,而是按下ctrl+v出现到快捷键,表示ctrl键,后面到x为任意字母)按下ctrl+x后会执行对应到命令
例:
:map ^p I# 当按下ctrl+p快捷组合键时,在光标所在行行首添加一个#号,并回到命令模式
技巧3 连续行注释
编辑模式下
:n1,n2/^/#/g                (#号为注释符号,在shell中注释符号为#,C++中为//)
:n1,n2/^/\/\//g        C++源文件多行连续注释
技巧4 替换
:ab string1 string2        在vim中输入string1按空格或回车后,string1会自动替换为string2
:unab string1                        取消string1的替换
vim配置文件
~/.vimrc
可将编辑模式下的命令写在里面,每个命令单独一行,这样每次启动时,会自动执行里面的命令。

推荐阅读
  • 本文详细介绍如何使用Samba软件配置CIFS文件共享服务,涵盖安装、配置、权限管理及多用户挂载等关键步骤。通过具体示例和命令行操作,帮助读者快速搭建并优化Samba服务器。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 在成功安装和测试MySQL及Apache之后,接下来的步骤是安装PHP。为了确保安全性和配置的一致性,建议在安装PHP前先停止MySQL和Apache服务,并将MySQL集成到PHP中。 ... [详细]
  • Nginx 反向代理与负载均衡实验
    本实验旨在通过配置 Nginx 实现反向代理和负载均衡,确保从北京本地代理服务器访问上海的 Web 服务器时,能够依次显示红、黄、绿三种颜色页面以验证负载均衡效果。 ... [详细]
  • 本文详细介绍了Vim编辑器的三种主要模式及其常用命令,帮助用户更好地掌握这一强大的文本编辑工具。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • 在Fedora 31上部署PostgreSQL 12
    本文详细介绍如何在Fedora 31操作系统上安装和配置PostgreSQL 12数据库。包括环境准备、安装步骤、配置优化以及安全设置,确保数据库能够稳定运行并提供高效的性能。 ... [详细]
  • 本文探讨了如何在Classic ASP中实现与PHP的hash_hmac('SHA256', $message, pack('H*', $secret))函数等效的哈希生成方法。通过分析不同实现方式及其产生的差异,提供了一种使用Microsoft .NET Framework的解决方案。 ... [详细]
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • 本文将详细介绍如何在没有显示器的情况下,使用Raspberry Pi Imager为树莓派4B安装操作系统,并进行基本配置,包括设置SSH、WiFi连接以及更新软件源。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • 本文介绍了在MacOS上通过Homebrew安装Anaconda3,并配置环境变量以实现不同Python版本之间的快速切换。同时,提供了详细的步骤来创建和管理多个Python环境。 ... [详细]
  • 请看|间隔时间_Postgresql 主从复制 ... [详细]
  • NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ... [详细]
author-avatar
傻缺缺的谭贱儿_452
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有