vim vimdiff diff 使用及命令
vim:
vim 从 vim7 开始加入了多标签切换的功能, 相当于多窗口. 之前的版本虽然也有多文件编辑功能, 但是总之不如这个方便啦。用法:
:tabnew [++opt选项] 〔+cmd〕 文件 建立对指定文件新的tab
:tabc 关闭当前的tab
:tabo 关闭所有其他的tab
:tabs 查看所有打开的tab
:tabp 前一个
:tabn 后一个
标准模式下:
gt , gT 可以直接在tab之间切换。
还有很多他命令, 看官大人自己, :help table 吧。
多窗口创建及焦点切换:
在Vim中开多窗口其实比较简单,也有不只一种方法,直接使用命令:new默认就是打开一个水平分割的新窗口。另外一个命令就是:split(sp)。
但是默认水平分割多少有点不爽,因为本来屏幕就是宽屏的,代码几乎不会写那么长了,而真正缺少的垂直空间,所以这个时候就要用到垂直分割了,命令是:vsplit(vs),很简单了一目了然。
打开了这么多窗口不知道如何切换肯定不行啦。切换也很简单,组合键ctrl+w,然后通过j/k,来定位窗口,注意看好窗口光标变化。不过个人感觉这样比较麻烦,每切换一次窗口都要先按组合键才行。还好还有另一种方法,那就是直接连续按两次ctrl+w组合键,vim会自动跳到下一个窗口。
另外更改窗口宽度的命令是: Crtl+w > 将当前窗口向右边扩展一行,将 > 换成 < 就是向左边扩展一行。也可以在之前使用数字代表扩展的行数, 5 Ctrl+w > ,向右边扩展5行。
更改窗口高度类似,只是命令是Ctrl+w + ,增加高度,- 减小高度。
vimdiff:
启动vimdiff
方法一:# vimdiff FILE_LEFT FILE_RIGHT
方法二:# vim -d FILE_LEFT FILE_RIGHT
方法三:# vim FILE_LEFT 之后打开vim后输入:vertical diffsplit FILE_RIGHT
窗口布局切换
Ctrl-w K(把当前窗口移到最上边)
Ctrl-w H(把当前窗口移到最左边)
Ctrl-w J(把当前窗口移到最下边)
Ctrl-w L(把当前窗口移到最右边)
窗口焦点切换,即切换当前窗口
CTRL-w h 跳转到左边的窗口
CTRL-w j 跳转到下面的窗口
CTRL-w k 跳转到上面的窗口
CTRL-w l 跳转到右边的窗口
CTRL-w t 跳转到最顶上的窗口
CTRL-w b 跳转到最底下的窗口
CTRL-w w 跳转到另一个窗口
CTRL-w CTRL-w 跳转到另一个窗口,同CTRL-w w
光标移动
移动光标,切分窗口会同步移动,使用:set noscrollbind命令可取消同步
]c 跳到下一个不同的地方
[c 跳到上一个不同的地方
上下文折叠
默认情况下,vimdiff会将文件中不同之处上下6行之外的相同文本折叠隐藏,可通过 :set diffopt=context:3 修改显示的上下文行数。
zo 打开折叠
zc 关闭折叠
其他折叠
zf 创建折叠(使用数字表示创建有当前行到下多少行的折叠,比如3j就创建包括4行的折叠)
zo 打开折叠(l也可以打开折叠)
zc 关闭当前折叠
zm 关闭所有折叠
zr 打开所有折叠
zE 删除所有折叠
zd 删除当前折叠
za 若当前打开则关闭,若当前关闭则打开
zj 到下一折叠的开始处
zk 到上一折叠的末尾
文件合并
dp 将当前窗口光标位置处的内容复制到另一窗口
do 将另一窗口光标位置处的内容复制到当前窗口
diffupdate 重新比较两个文件,如果手动修改文件的话有时不会自动同步
文件操作
yy 复制当前行
nyy 复制当前行开始的n行
dd 删除当前行
ndd 删除当前行开始的n行
p 粘贴
u 撤销
CTRL-r 重复(即取消撤销)
wa 全部保存
wqa 全部保存后退出
qa 全部退出
qa! 全部强制退出,不保存文件修改
diff:
diff [option] file1 file2
下边是diff出来的结果:表示file1与file2的从60到63之间4行的比较结果!!
60,63c60,63
< ^[[00;34m malloc|^[[0m 45953 55944474 0^[[00;00m
< ^[[00;34mrealloc|^[[0m 5921 241437 0^[[00;00m (in place: 1363, dec: 52)
< ^[[00;34m calloc|^[[0m 2171 323352 0^[[00;00m
< ^[[00;34m free|^[[0m 54747 55682454
---
> ^[[00;34m malloc|^[[0m 47899 55961673 0^[[00;00m
> ^[[00;34mrealloc|^[[0m 8551 283037 0^[[00;00m (in place: 1411, dec: 52)
> ^[[00;34m calloc|^[[0m 2433 341968 0^[[00;00m
> ^[[00;34m free|^[[0m 58869 55759829
下边是diff添加选项-crN出来的结果:只发生+或-操作合并显示;发生修改则分开显示!!
*** 37,42 ****
--- 37,43 ----
#define ENABLE_TOUCH_EVENTS @ENABLE_TOUCH_EVENTS_VALUE@
#define ENABLE_VIDEO @ENABLE_VIDEO_VALUE@
#define ENABLE_WEB_SOCKETS @ENABLE_WEB_SOCKETS_VALUE@
+ #define ENABLE_WML @ENABLE_WML_VALUE@
#define ENABLE_WORKERS @ENABLE_WORKERS_VALUE@
#define ENABLE_XHTMLMP @ENABLE_XHTMLMP_VALUE@
#define ENABLE_XPATH @ENABLE_XPATH_VALUE@
*** 126,130 ****
ENDIF ()
ENDFOREACH ()
! SOURCE_GROUP("DerivedSources" REGULAR_EXPRESSION "${DERIVED_SOURCES_WEBCORE_DIR}")
ENDMACRO ()
--- 126,130 ----
ENDIF ()
ENDFOREACH ()
! SOURCE_GROUP("DerivedSources" REGULAR_EXPRESSION "${DERIVED_SOURCES_DIR}")
ENDMACRO ()
下边是diff添加选项-uarN出来的结果:从file1的第1225行开始的7行之内有删除,从file2的第1159行开始的6行之内有添加或修改!!
@@ -1225,7 +1159,6 @@
XPATH support : $enable_xpath
XSLT support : $enable_xslt
Spellcheck support : $enable_spellcheck
- Animation API : $enable_animation_api
GTK+ configuration:
GTK+ version : $with_gtk
diff -uarN r85406/GNUmakefile.am r82327/GNUmakefile.am
--- r85406/GNUmakefile.am 2011-06-20 13:27:54.000000000 +0800
+++ r82327/GNUmakefile.am 2011-06-20 10:23:56.000000000 +0800
vim vimdiff diff 使用及命令的更多相关文章
- Linux中的版本控制---diff和patch命令
一.构造两个用于测试的文件 hello.txt: world.txt: 二.用diff命令比较两个文本文件的差异 对这个两个文本文件执行diff‘命令,并通过输出重定向,将差异保存在diff.txt文 ...
- Linux下diff与patch命令的配合使用
在Linux下,diff与patch命令配合使用可以进行简单的代码维护工作. [A] diff diff命令用于比较文件的差异,可以用于制作patch文件.但此命令参数众多.格式多样,所以在此仅介绍较 ...
- docker容器中安装vim 、telnet、ifconfig命令
一.在使用docker容器时,有时候里边没有安装vim,敲vim命令时提示说:vim: command not found 问题:apt-get install vim安装vim 命令时,提示:如下内 ...
- 安装VMtools vim编辑器的使用 压缩包命令 Linux下的用户管理 (第三天)
VM tools:方便我们虚拟机和宿主机之间复制数据或移动文件等 安装VMtools 1.菜单栏-虚拟机-安装VM tools 将其选中 2.进入系统,在桌面位置里面有VM tools的光盘,双击进入 ...
- 【Linux 操作系统】vim编辑器配置及常用命令
最近工作不安分, 没有了刚入行时候的锐气, 不知道什么时候开始懈怠起来, 周末在电脑旁边看新闻, 搞笑图片, 追美剧, 一坐就是一天, 很是空虚. 我需要摆脱这种状态, 正好想学习一下安卓底层, An ...
- 安卓程序代写 网上程序代写[原]vim编辑器配置及常用命令
最近工作不安分, 没有了刚入行时候的锐气, 不知道什么时候开始懈怠起来, 周末在电脑旁边看新闻, 搞笑图片, 追美剧, 一坐就是一天, 很是空虚. 我需要摆脱这种状态, 正好想学习一下安卓底层, An ...
- vim编辑器配置及常用命令
最近工作不安分, 没有了刚入行时候的锐气, 不知道什么时候开始懈怠起来, 周末在电脑旁边看新闻, 搞笑图片, 追美剧, 一坐就是一天, 很是空虚. 我需要摆脱这种状态, 正好想学习一下安卓底层, An ...
- vim ---- 一键自动indent的命令
当用vim拷贝某一段代码到另一个程序的时候,往往indent会有一些问题.. 下面这个强大的命令能够让你一键让代码有很好的格式. gg=G 例子:
- Vim的分割窗口split命令
显示两个不同的文件:或者同时显示一个文件的两个不同地方:又或者并排比较两个文件.这一切都可以通过分割窗口实现. 打开新窗口最简单的命令如下: :split (水平分割) || :vsplit (垂直分 ...
随机推荐
- jetty学习小结
1.什么是jetty? 开源HTTP服务器和Servlet引擎,是web应用的容器,同tomcat类似.由于其轻量灵活的特性,很多知名产品也应用了它,如maven.eclipse.hadoop.spa ...
- java统计中英文字数 Java问题通用解决代码
http://yangchao20020.blog.163.com/blog/static/483822472011111635424751/ 这个不适用于新浪微博字数的统计,结果有差别,若需要可 ...
- js从$scope外部调用$scope内部函数,跨js调用非全局函数
scope内部函数定义 //定位 $scope.LocateByPoint = function (x,y) { if(!x || !y) { window.alert("GPS坐标不存在, ...
- xml格式发送
1. namespace xml格式发送 { /// <summary> /// 实体转Xml,Xml转实体类 /// </summary> /// <typeparam ...
- orcad 里误给元件添加了属性,如何删除
1.先尝试点击delete property 2.第一步不行就右键选择filters----->remove current filter进行删除
- CentOS4.5下LVS方案
环境描述:本文在配置LVS时使用三台linux,一台做Directorserver (192.168.0.25) ,两台做realserver(192.168.0.127 192.168.0.12,在 ...
- eclipse 创建maven web错误Cannot change version of project facet Dynamic web module to 3.1解决方案
Dynamic Web Module 选择“3.1”,java选择“1.8”,报错:Cannot change version of project facet Dynamic web module ...
- threw load() exception java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet(maven项目git后)
maven项目git全新项目后启动服务出现的, 错误原因: 进入到tomcat的部署路径.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpw ...
- 使用WebStorm将项目部署到IIS
在WebStorm中打开项目,通常WS会启动一个虚拟服务器并使用如下地址访问 但这样会有一个问题,在局域网内的其他设备,比如手机和其他电脑是不能访问这个地址的,这样就给开发和调试带来了不便.本人也是惭 ...
- llinux获取系统时间
linux中获取当前时间.统计程序运行时间,可以使用gettimeofday()得到毫秒级的时间统计,利用rdtsc指令获取纳秒级时间统计. gettimeofday() 它是一个linux C库函数 ...