再探vim经常使用命令
最開始学习过vim,见 http://blog.csdn.net/u011848617/article/details/12837873
之后以前不了了之,当再次学习后,发现经常使用命令的掌握还是不可缺少的,以下是我整理的vim经常使用命令:
//下面操作均是在命令行模式下运行的
/*启动vim*/
vim---------------------不指定文件名称,在保存文件时指定文件名称
vim filename------------打开指定文件,此文件能够存在也能够不存在
vim +n filename---------进入vim,光标停在第n行開始处
vim +filename-----------进入vim,光标停在文件最后一行開始处
vim +/string filename---进入vim,光标停在第一个字符串处
/*保存文件并退出vim*/
w:---------保存当前正在编辑文件,但不退出vim
w filename-----将当前文件内容保存至filename指定的新文件里,若该文件存在则产生错误,不退出vim
w! filename-----将当前文件内容保存至filename指定的新文件里,若该文件存在则覆盖原文件,不退出vim
q:--------------不保存直接退出vim,若文件有修改但未保存将产生错误
q!:--------------不保存直接退出vim,若文件有修改则修改内容将丢失
wq:--------------保存并退出vim
/*光标的移动*/
0---------------移到当前行行首
$---------------移到当前行行尾
w---------------右移1个字
nw--------------右移n个字
b---------------左移1个字
nb--------------左移n个字
(---------------移到本句的句首,假设已处于本句句首,则移动到前一句句首
)---------------移到下一句句首
{---------------移到本段的段首,假设已处于本段短首,则移动到前一段段首
}---------------移到下一段段首
g---------------移到文件第一行
G---------------移到文件最后一行
/word-----------查找(+n--向下继续查找下一个/+N--向上继续查找下一个)
x---------------向后删除一个字符
X---------------向前删除一个字符
dd--------------删除光标所在行
yy--------------复制光标所在行
p(小写)---------粘贴至下一行
P(大写)---------粘贴至上一行
ctrl+r/.--------反复运行前一操作
u---------------删除前一操作
i---------------从光标所在字符前插入
a---------------从光标所在字符后插入
o---------------从光标所在行的下一行插入
r---------------替换字符
:q--------------离开
:wq-------------保存后离开
:set nu---------显示行号
:set nonu-------取消行号
//文本的查找
?string<Enter> --------- 查找string
n ---------------------- 向文件头方向反复查找
N ---------------------- 向文件尾方向反复查找
//文本的替换
:s/oldstr/newstr -------------- 在当前行用newstr替换oldstr,仅仅替换一次
:s/oldstr/newstr/g ------------ 在当前行用newstr替换全部的字符串oldstr
:1,10s/oldstr/newstr/g -------- 在1~10行用字符串newstr替换全部的oldstr
:1,$s/oldstr/newstr/g --------- 在整个文件里用字符串newstr替换全部的oldstr
再探vim经常使用命令的更多相关文章
- 再探VIM配置
再探VIM配置 最初找到这个发行版spf13-vim,在ubuntu上用的还比较方便,有很多插件:最近在mac上用,总是不兼容vim,用brew安装了最新的vim,还是跟系统不兼容,总是有问题,于是就 ...
- 再探gdb经常使用命令
前面已经有了一篇对gdb经常使用命令的总结.见 http://blog.csdn.net/u011848617/article/details/12838875 这里对眼下学过的gdb命令进行了 ...
- vim显示历史命令
[vim显示历史命令] q: 进入命令历史编辑.类似的还有 q/ 可以进入搜索历史编辑.注意 q 后面如果跟随其它字母,是进入命令记录. 可以像编辑缓冲区一样编辑某个命令,然后回车执行.也可以用 ct ...
- 再探ASP.NET 5(转载)
就在最近一段时间,微软又有大动作了,在IDE方面除了给我们发布了Viausl Studio 2013 社区版还发布了全新的Visual Studio 2015 Preview. Visual Stud ...
- vim经常使用命令总结
vim 选择文本,删除,复制,粘贴 文本的选择,对于编辑器来说,是非常主要的东西,也常常被用到,总结例如以下: v 从光标当前位置開始,光标所经过的地方会被选中,再按一下v结束. V ...
- linux应用之vim的常用命令
vim 选择文本,删除,复制,粘贴 文本的选择,对于编辑器来说,是很基本的东西,也经常被用到,总结如下: v 从光标当前位置开始,光标所经过的地方会被选中,再按一下v结束. V 从光标当前行开始,光标 ...
- c++再探string之eager-copy、COW和SSO方案
在牛客网上看到一题字符串拷贝相关的题目,深入挖掘了下才发现原来C++中string的实现还是有好几种优化方法的. 原始题目是这样的: 关于代码输出正确的结果是()(Linux g++ 环境下编译运行) ...
- vi/vim基本使用命令
vi/vim基本使用命令 一.总结 一句话总结:1.记住三种模式:命令行模式.插入模式.底行模式:2.记住两个按键功能:i和esc 二.vi/vim基本使用命令 vi/vim 基本使用方法本文介绍了v ...
- vi/vim系统编辑命令使用技巧
01前言 在Linux系统中会有很多的文件信息,这些文件的内容如果需要编辑,就必须借助vi或vim编辑命令. vi是Linux命令行界面下的重要文字编辑器.vim是vi命令的增强版. [语法格式] v ...
随机推荐
- 【Unity3D】【NGUI】UICamera
原文:http://www.tasharen.com/forum/index.php?topic=6711.0 NGUI讨论群:333417608 概述 UICamera这个名字不是很合适,保留的原因 ...
- Thinkphp入门 二 —空操作、空模块、模块分组、前置操作、后置操作、跨模块调用(46)
原文:Thinkphp入门 二 -空操作.空模块.模块分组.前置操作.后置操作.跨模块调用(46) [空操作处理] 看下列图: 实际情况:我们的User控制器没有hello()这个方法 一个对象去访问 ...
- ABAP函数:VIEW_MAINTENANCE_CALL(维护表视图等)
function:VIEW_MAINTENANCE_CALL 功能:维护表视图等 The function module calls the extended table maintenance (V ...
- Eclipse背景和匹配出现单词的一些设置
Eclipse的背景色和关键词的设置这里就不多说了,只说明设置路径: 背景色:[Window]--->[Preference]-->[General]--->[Editors]--- ...
- Java中取某一个范围的随机数
一.取模操作 public static void main(String[] args) { for (int i = 1; i <= 20; i++) { int j = i % 11; S ...
- ASP.NET从MVC5升级到MVC6
1-1)文件结构的升级(Area和Filter知识总结) - ASP.NET从MVC5升级到MVC6 ASP.NET从MVC5升级到MVC6 总目录 MVC5项目结构 带有Areas和Filter ...
- vc 按钮自绘
按钮自绘,将按钮区域分成三部分,左边.右边.中间都由贴图绘制,可用于手动进度条按钮,或者左右选择项按钮 cpp代码部分: // LRSkinButton.cpp : implementation fi ...
- 在cocos2d-x jsb/html5中设置触摸代理的方法
和官方的说明不同,js binding的很多api和ch5版是不一样的.遇到不一样的就需要我们努力去看源码寻找了. 主要是以下几个文件 cocos2d_specifics.cpp cocos2d_sp ...
- A*寻路算法的实现
原理:http://www.cppblog.com/christanxw/archive/2006/04/07/5126.html 算法理论请到原理这个传送门,代码中的注释,已经比较详细,所以我不会讲 ...
- hadoop namanodejava
最近突然想看下hadoop源码,有利于处理一些突发问题.先从name启动开始, NameNode.java public static void main(String argv[]) throws ...