vim初级命令
命令 |
说明 |
光标移动 |
|
h |
左 |
l(小写L) |
右 |
j |
下 |
k |
上 |
w |
移动到下一个单词 |
b |
移动到上一个单词 |
插入 |
|
i |
在当前光标处进行编辑 |
I(大写i) |
在行首插入 |
A |
在行末插入 |
a |
在光标后插入编辑 |
o |
在当前行后插入一个新行 |
O |
在当前行前插入一个新行 |
cw |
替换从光标所在位置后到一个单词结尾的字符 |
退出 |
|
:q! |
强制退出, 不保存 |
:q |
退出 |
:wq! |
强制保存并退出 |
:w <文件路径> |
另存为 |
:saveas 文件路径 |
另存为 |
:x |
保存并退出 |
:x |
保存并退出 |
:wq |
|
删除 |
|
x |
删除光标所在的字符 |
X |
删除光标所在前一个字符 |
Delete |
同x |
dd |
删除整行 (也是剪切) |
dw |
删除一个单词(不适用中文) |
d$或D |
删除至行尾 |
d^ |
删除至行首 |
dG |
删除到文档结尾处 |
d1G |
删除至文档首部 |
其他 |
|
. |
重复上一次命令 |
n<命令> |
5x, 3dd 执行指定次数相同的命令 |
:set nu |
显示行号 |
~ |
将光标所在字母变成大写或小写 |
光标快速跳转 |
|
nG |
光标移动到第n行 |
gg |
光标移动到第一行 |
G |
光标移动到最后一行 |
w |
下一个单词开头 |
e |
下一个单词的结尾 |
b |
前一个单词开头 |
ge |
前一个单词结尾 |
0或^ |
到行头 |
$ |
到行尾 |
f<字母> |
向后搜索<字母>并跳转到第一个匹配的位置 |
F<字母> |
向前搜索<字母>并跳转到第一个匹配的位置 |
复制及粘贴文本 |
|
yy |
复制有表所在整行 (3yy表示复制3行) |
y^ |
复制至行首 |
y$ |
复制至行尾, 含光标所在处字符 |
yw |
复制一个单词 |
y2w |
复制两个单词 |
yG |
复制至文本末 |
y1G |
复制至文本开头 |
p(小写) |
粘贴至光标后(下) |
P(大写) |
粘贴至光标前(上) |
替换和撤销 |
|
r + <待替换字母> |
|
R |
连续替换, 直到按下Esc |
快速缩进 |
|
>> |
整行向右缩进 |
<< |
整行向左回退 |
:set sw=4或者 :set shiftwidth = 8 |
设置缩进和回退的字符数 sw是shiftwidth的简写 |
:set sw? |
查看缩进字符数 |
调整文本位置 |
|
:ce |
本行内容居中 |
:ri |
本行文本靠右 |
:le |
本行内容靠左 |
查找 |
|
/<字符串> |
向下查找 |
?<字符串> |
向上查找 |
n |
查找下一个 |
N |
查找上一个 |
n和 N |
继续查找命令 |
多文件编辑 |
|
vim 1.txt 2.txt |
默认打开1.txt |
:n |
编辑下一个文件 |
:N |
编辑上一个文件 |
:n! 和:N! |
强制切换 |
:e 3.txt |
打开新文件3.txt |
:e# |
返回前一个文件 |
:ls |
列出以前编辑过的文档 |
:b 2.txt |
直接进入文件(或编号)2.txt |
:bd 2.txt |
删除以前编辑过的列表中的文件项目(或编号) |
:e! 4.txt |
新打开文件4.txt, 放弃正在编辑的文件 |
:f |
显示正在编辑的文件名 |
:f new.txt |
改变正在编辑的文件名字为new.txt |
恢复文件(断点或其他未保存文档) |
|
vim -r |
进入文档 |
:ewcover 1.txt |
恢复 |
选取 |
|
v(小写) |
字符选择, 移动光标, 再次按v取消选取 |
Shift+v |
整行选取 |
Ctrl + v |
矩形选取 |
d |
删除选取区域 |
y |
复制选取区域 |
视窗操作 |
|
:new |
打开一个新的vim视窗 |
:new 1.txt |
打开一个新的vim视窗, 命名为1.txt |
:sp 1.txt |
打开新的横向视窗来编辑1.txt |
:vsp 2.txt |
打开新的纵向视窗来编辑1.txt |
ctrl+w s |
将当前窗口分割成两个水平的窗口 |
ctrl+w v |
将当前窗口分割成两个垂直的窗口 |
ctrl+w q |
即 :q 结束分割出来的视窗。如果在新视窗中有输入需要使用强制符!即:q! |
ctrl+w o |
打开一个视窗并且隐藏之前的所有视窗 |
ctrl+w j |
移至下面视窗 |
ctrl+w k |
移至上面视窗 |
ctrl+w h |
移至左边视窗 |
ctrl+w l |
移至右边视窗 |
ctrl+w J |
将当前视窗移至下面 |
ctrl+w K |
将当前视窗移至上面 |
ctrl+w H |
将当前视窗移至左边 |
ctrl+w L |
将当前视窗移至右边 |
ctrl+w - |
减小视窗的高度 |
ctrl+w + |
增加视窗的高度 |
vim初级命令的更多相关文章
- Vim常用命令总结
Vim常用命令总结: 下文是小编自己整理的关于日常linux vim编程过程中用的一些常用命令,资料参考鸟哥的 如果有需要的小伙伴可以参考一下!(底部有下载地址) 一. 一般模式可用的按钮说明 1.1 ...
- vim基础命令
2015-06-04 by komilevim基础命令 打开一个文件 vim index.php 几种模式说明Normal Mode也就是最一般的普通模式,默认进入vim之后,处于这种模式.Inser ...
- vim常用命令(iOS)
iOS下vim的使用: vim 的三种模式: .一般模式(默认) .插入模式(写文字) .命令行模式(保存) 各种模式的功能区分如下: .一般模式:控制屏幕光标的移动,字符和光标的删除,移动复制某区段 ...
- 实用手册:130+ 提高开发效率的 vim 常用命令
Vim 是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用.和 Emacs 并列成为类 Unix 系统用户最喜欢的编辑器.这里收录了130+程 ...
- vim常用命令汇总
vim常用命令汇总: http://www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html 定位 本行第一个字符 ctrl+$ ...
- [转]vim常用命令
[转]vim常用命令 http://www.cnblogs.com/sunyubo/archive/2010/01/06/2282198.html http://blog.csdn.net/wooin ...
- vim常用命令 vim键盘布局
vim键盘布局,vim快捷键 vim常用命令:
- vim替换命令
转载:http://blog.csdn.net/glorin/article/details/6317098 替換(substitute) :[range]s/pattern/string/[c,e, ...
- vim的命令集合
命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令.启动vim 在命令行窗口中输入以下命令即可 vim 直接启动vim vim filename 打开vim并 ...
随机推荐
- java----IO和NIO的区别
概念:NIO即New IO,这个库是在JDK1.4中才引入的.NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多.在Java API中提供了两套NIO ...
- 5.3 SpEL语法
SqEL是一个可以独立于spring的表达式语言,即它可以用在XML中对语法进行简化 5.3 SpEL语法5.3.1 基本表达式一.字面量表达式: SpEL支持的字面量包括:字符串.数字类型(int. ...
- oracle和SQLserver数据库中select into 的区别
在Oracle中是这样的 在SQLserver中是这样的
- hdu 1813(IDA*)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1813 思路:首先bfs预处理出‘0’到边界点最短距离,然后构造 h() 为所’0‘点逃离迷宫的最少步数 ...
- connect() failed (111: Connection refused) while connecting to upstream, cli
php-fpm没有运行 执行如下命令查看是否启动了php-fpm,如果没有则启动你的php-fpm即可 netstat -ant | grep 9000 没有运行为空,有运行显示 tcp 0 0 12 ...
- openssl之EVP系列之8---EVP_Digest系列函数具体解释
openssl之EVP系列之8---EVP_Digest系列函数具体解释 ---依据openssl doc/crypto/EVP_DigestInit.pod翻译和自己的理解写成 (作 ...
- THINKPHP5加载公共头部尾部模板方法
之前在3.2中用 <include file="public/header" /> 后来发现在thinkphp5中应该这样写才行 {include file=" ...
- FragmentStatePagerAdapter写法
为了节省资源,分批加载数据//适配器class TabLayoutViewPagerAdapter extends FragmentStatePagerAdapter { public TabLayo ...
- 【BZOJ5072】[Lydsy十月月赛]小A的树 树形DP
[BZOJ5072][Lydsy十月月赛]小A的树 题解:考虑我们从一个联通块中替换掉一个点,导致黑点数量的变化最多为1.所以我们考虑维护对于所有的x,y的最大值和最小值是多少.如果询问的y在最大值和 ...
- Vue基础-渲染函数-父子组件-传递数据
Vue 测试版本:Vue.js v2.5.13 做了个 demo,把父子组件的数据都绑定到 Vue 实例 app 上,注释中的 template 相对好理解些 <div id="app ...