linux vi/vim文本编辑
在linux环境下,我们用的最多的文本编辑命令就是vi了,vim是vi的增强版。学习vim时候整理了一下常用的命令行,一起学习。
介绍一下vim的三种常见状态模式: 命令模式,插入模式(编辑),正常模式。这三种模式可以相互转换。每次按两次esc,就可以推到正常模式,然后在进去其他模式。
正常模式 :一般的,打开Vim都是正常模式。在任何模式下,只要按下 Esc 键就可以返回正常模式。
插入模式 :插入模式则用来向文本中添加内容的。
命令模式 :命令模式则多用于操作文本文件(而不是操作文本文件的内容),例如保存文件;或者用来改变编辑器本身的状态,例如设定多栏窗口、标签或者退出编辑器……
将vim命令划分为三类:命令行类,移动光标类,编辑类。命令行是在vim编辑器的底部输入需要执行的命令行的形式,移动光标类是所有定位光标位置的指令,编辑类是对所打开文档的内容进行修改。
命令行类
打开
> vim 文件名
保存
> :w 保存文件
退出
> :q 冒号加q 不保存退出。注意:若文件有修改无法直接退出,命令无效,此时可使用:wq保存并退出或使用:q!强制退出。
> / 斜杠加所要的搜索的字符 字母n可以查看下一个,大写的N可以查看上一个。
>? 问号后面加上要搜索的字符,字母n可以查看下一个,大写的N可以查看上一个。
替换
> :%s/a/b 将文档中的每行第一个字符串a替换为b (可以对应多个字符)
>:%s/a/b/g 将文档中所有字符串a替换为b
>:%s/a/b/gc 由你决定文档中每一个字符串a是否替换为b, 输出如下命令选择项,这里的y表示同意替换当前字符串;n表示不替换;a表示替换所有匹配到的字符串;q表示退出此次替换操作。
>:n1,n2 s/old/new/g :在n1和n2行之间查找old字符串,全部替换成字符串new。
多窗口操
1、打开多个窗口
打开多个窗口的命令以下几个:
横向切割窗口
:new+窗口名(保存后就是文件名)
:split+窗口名,也可以简写为:sp+窗口名
纵向切割窗口名
:vsplit+窗口名,也可以简写为:vsp+窗口名
2、关闭多窗口
可以用:q!,也可以使用:close,最后一个窗口不能使用close关闭。使用close只是暂时关闭窗口,其内容还在缓存中,只有使用q!、w!或x才能真能退出。
:tabc 关闭当前窗口
:tabo 关闭所有窗口
3、窗口切换
:ctrl+w+j/k,通过j/k可以上下切换,或者:ctrl+w加上下左右键,还可以通过快速双击ctrl+w依次切换窗口。
4、窗口大小调整
纵向调整
:ctrl+w + 纵向扩大(行数增加)
:ctrl+w - 纵向缩小 (行数减少)
:res(ize) num 例如::res 5,显示行数调整为5行
:res(ize)+num 把当前窗口高度增加num行
:res(ize)-num 把当前窗口高度减少num行
横向调整
:vertical res(ize) num 指定当前窗口为num列
:vertical res(ize)+num 把当前窗口增加num列
:vertical res(ize)-num 把当前窗口减少num列
5、给窗口重命名
:f file
6、vi打开多文件
vi a b c
:n 跳至下一个文件,也可以直接指定要跳的文件,如:n c,可以直接跳到c文件
:e# 回到刚才编辑的文件
7、文件浏览
:Ex 开启目录浏览器,可以浏览当前目录下的所有文件,并可以选择
:Sex 水平分割当前窗口,并在一个窗口中开启目录浏览器
:ls 显示当前buffer情况
8、vi与shell切换
:shell 可以在不关闭vi的情况下切换到shell命令行
:exit 从shell回到vi
移动光标类
这是编辑状态下进行的操作(编辑状态在下一节中介绍)
上下左右移动
> k 上移 j 下移 h 左移 l 右移
> num+j/k/h/l 向上/下/左/右移动num个单位
光标移动
光标的移动,前提是vim在命令模式下进行的:
> gg 跳转到文档的首行开始的位置
> G 跳转到文档结尾行的开始位置
> num + G 跳转到指定行数的位置,这里的num是一个整形数字。
> 0 跳转至行首
> $ 跳转到行尾
> w 光标每次跳动一个英文单词,光标定位到下一个单词的首字母。
> e 光标每次跳动一个英文单词,光标定位到下一个单词的尾部。
> % 光标移动到当前字符所“匹配”的字符。“匹配”:成对的字符 如‘{’和‘}’,‘(’和‘)’,‘['和’]'。
编辑类
vim在正常模式状态下进行的操作。
插入
> i 在光标所在字符前执行插入操作。这时候vim由正常状态到了编辑状态。vim的变化如下图所示。
> I (大写的i) 在光标所在行行首插入。
>a 在光标所在字符后执行插入操作。
>A 在光标所在行行尾插入。
> o 同 i 操作,不过o命令是在光标的下一行位置增添新的一行,并且vim进入如上图所示的状态,可以插入任意字符。
>O (大写的o) 在光标所在行,上一行插入。命令实现速度要比o慢许多,通常使用‘ko’命令代替。
复制
> yt* 复制光标所在位置到指定字符前的位置的字符串,这里的*就是指定字符,可以为任意一字符。
> yf* 复制光标所在位置到指定字符的位置的字符串(包括指定位置),这里的*就是指定字符,可以为任意一字符。
> y$ 复制到行尾
> yy 复制光标所在行
> num + yy / y + num +y 复制光标所在行及其之后num-1行,共num行。
更多y与移动光标类命令组合如yw,yG 请自行挖掘
粘贴
> p 将所复制的内容粘贴。
删除
> dd 删除光标所在行 用法与 y 相同。
> x 删除光标处的一个字符。
调用寄存器
>"+ 实现与外部文件的复制和粘贴。常用的命令组合是”+y复制,”+p粘贴。一个比较常用的场景,如用nodepad打开txt文档ctrl+A,ctrl+C进行复制,打开vim窗口,调整光标位置,”+p粘贴;或在vim窗口中gg”+yG(调整光标位置至文档开头并复制至文档末尾),并打开nodepad,ctrl+V复制
im命令可以连续组合使用,有许多神奇的特效。不足请指正。
linux vi/vim文本编辑的更多相关文章
- Linux vi/vim(转载)
Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主 ...
- Linux 磁盘管理,Linux vi/vim
一.Linux 磁盘管理 Linux磁盘管理好坏直接关系到整个系统的性能问题. Linux磁盘管理常用三个命令为df.du和fdisk. df:列出文件系统的整体磁盘使用量 du:检查磁盘空间使用量 ...
- 十、Linux vi/vim
Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主 ...
- -Git Linux vi/vim 命令 按键 MD
目录 目录 Linux vi/vim 简介 vi/vim 的使用 命令模式 输入模式 底线命令模式 vi/vim 使用实例 使用 vi/vim 进入一般模式 按下 i 进入输入模式,开始编辑文字 按下 ...
- linux vi/vim 编辑器学习总结
linux vi/vim 编辑器学习总结 很多时候我们开发人员不可避免的会涉及到项目部署,这个时候使用的就不是我们所熟知的 Windows 和 Mac OS 操作系统了,而是类 Unix 系统.项目部 ...
- Linux vi/vim命令
转自:http://www.runoob.com/linux/linux-vim.html Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一 ...
- Linux vi/vim and linux yum 命令
Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主 ...
- 吴裕雄--天生自然Linux操作系统:Linux vi/vim
Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主 ...
- Linux vi/vim
所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正 ...
随机推荐
- Wishbone总线从接口转Xilinx MIG (Spartan 6)
//*************************************************************************** // Copyright(c)2016, L ...
- Synopsys EDA工具在LinuxMint 18(Ubuntu 16.04.2)安装注意事项
Synopsys家的工具官方对Linux发行版支持为RHEL 5/6/7及SUSE 12/13,对于2014版本的工具(DC.ICC.PT.VCS.HSPICE等).其实,在Debian系及衍生版本上 ...
- Solr6.6 IK 中文分词的配置和使用
1. 首先,下载IKAnalyzer ,下载 2. 将ik的相关文件 拷贝到 webapps\solr\WEB-INF\lib 目录下 或者存放solr-6.6.0\server\solr\test\ ...
- automake连载--Linux下使用autoconfig automake进阶
http://blog.csdn.net/shanzhizi/article/details/30247325 前言: 这次task,我大概用了4天的时间去完成.四天的时间内,我不停地去查 ...
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-点击激活配置进入到运行模式直接死机或蓝屏怎么办
下载我提供的TCRtime.sys文件,替换掉TwinCAT/Driver目录下的原有文件(原有文件要小一点,这个是159KB的) 如果你同时也安装了TwinCAT3,请不要替换这个,他是398KB的 ...
- 修改PHP上传文件的大小限制
Warning: POST Content-Length of 35052172 bytes exceeds the limit of 8388608 bytes in Unknown on line ...
- node了解
学习资料 廖雪峰的官方网站—node.js Node.js 中文网:http://nodejs.cn/ Node.js 教程(菜鸟教程):http://www.runoob.com/nodejs/no ...
- 记一次MySQL找回用户数据
事情经过 有天,我们公司外区的一个销售C说他8月3号以前的工作流记录找不到了.问清缘由,原来是更新了微信号(我们公司的工作流是基于企业微信开发的).经过分析,微信号和流程数据并没什么关系,所以初步得出 ...
- 使用wamp访问localhost时查看项目地址不对
使用wamp访问localhost时查看项目地址不对 直接点击访问不到,http://路径少了一个localhost. 怎么办呢? 找到wamp 的www 目录下的index.php 文件打开后 找到 ...
- HDU 1073 Online Judge(字符串)
Online Judge Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tot ...