常用的vi快捷方式
一般情况来说:
0代表行首,$代表行末
$,G代表最后一行
光标移动
0 移动到本行最前面
$ 移动到本行最后
G 移动文件最后一行
nG 移动到文件第n行
gg 移动到文件第一行
n【space】移动这一行的第n个字符
n【enter】移动n行
H屏幕第一行
M屏幕中间一行
L屏幕最后一行
查找和替换
/word 查找word
?word 查找word,不过是向上查找
n 向下重复上一个查找
N 向上重复下一个查找
:n1,n2s/word1/word2/g 替换
:1,$s/word1/word2/g 第一行到最后一行的替换
因此多行注释的方法就是:
:n1,n2s/^/#/g
删除多行注释的方法就是
:n1,n2s/#//g(还是:n1,n2s/^#//g)
删除,复制和粘贴
dd 删除当前行
ndd删除当前行之后所有n行
dG删除当前行到最后一行
d1G删除当前行到第一行
d0删除光标值第一个字符
d$ 删除光标至当前行最后一个字符
yy 复制当前行
nyy复制当前行之下的n行
y1G复制当前行至第一行
yG 复制当前行之最后一行
y0 复制当前字符至本行首个字符
y$ 复制当前字符至本行最后一个字符
p 将复制内容粘贴至当前行的下一行
重复、撤销等操作
j 将光标所在行和下一行数据合并
. 重复上一个操作
u 撤销上一个操作
【ctrl】+r 重复上一个操作
其他命令行操作
:wq! 强制保存退出
:w【filename】 相当于另存为
:r[filename] 将filename的内容加到光标所在行的后面
:n1,n2 w[filename]将n1至n2行的内容保存到filename文件中
:set nu 设置行好
:set nonu 取消行好
vi的选择功能:
v 字符选择,将光标经过的地方反白
V 行选择,光标经过的行反白
[ctrl]+v 块选择
y 将反白的地方复制起来
d 将反白的地方删除
vi 多文件编辑功能
之前碰到过这种情况,将文件一中某些行复制粘贴到文件二中,格式会乱掉
此时,可以利用i同时打开多个文件vi -o file1 file2 file3
:file 显示当前所有文件
:n 编辑下一个文件
:N 编辑上一个文件
[ctrl] +w 也可在多文件之间切换
这样就可以采用上面的快捷方式,如同在一个文件中操作
windows以CRLF(^M$)换行,linux以$换行,转换的时候可以采用dos2unix、unix2dos命令
除了vi之外,如果仅仅是查看一个文件,还有cat、tac、nl等方式,并可以通过参数设置是否显示行号,时候显示断行、【tabl】等看不见的字符。
vi的多窗口编辑和参数设置
如果编辑的文件篇幅过大时,可能需要vi多窗口编辑功能,
打开一个文件,:sp可以实现多窗口切换【ctrl】+w可以进行窗口之间的切换
对于vi环境参数的设置等,可以参照linux私房菜的p287
对于编码或者语系编码转换,同上
常用的vi快捷方式的更多相关文章
- linux:终端常用命令 + vi命令修改文件及保存 方法
首先介绍一下Ubuntu下各个目录的一般作用: / 这就是根目录,一台电脑有且只有一个根目录,所有的文件都是从这里开始的.举个例子:当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录 ...
- 我常用的Vi命令
Vi对于linux的重要性和受欢迎的程度在此一律不表.此刻互联网上不少介绍vi的文章和博客,相信写得比我好的也不在少数.然而为什么我依然写这样一篇文章呢?我对linux知识和了解也都来自于互联网,很难 ...
- 【原创】一些常用的Vi命令,可帮助脱离鼠标
使用Vi编写代码时,如果想脱离鼠标,需要使用一些命令快捷键,下面罗列了一些常用的并且容易记住的: 1. 命令模式下,移动光标或跳转 0到行首 ^到行首第一个非空字符 $到行尾非空字符 fx向后移动光标 ...
- 【转】一些常用的Vi命令,可帮助脱离鼠标
使用Vi编写代码时,如果想脱离鼠标,需要使用一些命令快捷键,下面罗列了一些常用的并且容易记住的: 1. 命令模式下,移动光标或跳转 0到行首 ^到行首第一个非空字符 $到行尾非空字符 fx向后移动光标 ...
- 常用的vi/vim基本命令(持续更新)
★删除/复制/粘贴 全部删除:按esc后,然后dG 全部复制:按esc后,然后ggyG 全选高亮显示:按esc后,然后ggvG或者ggVG 按“+p“可将系统全局粘贴板里的内容粘贴进来 y ...
- 不常用的vi命令
vi u 撤回ctrl+r 撤回的撤回 全文替换%s/old/new/g 指定行区间替换12,15s/old/new/g c替换前确认12,15s/old/new/gc 用#代替分隔符,用户关键字有/ ...
- mac bash 下使用vi 快捷方式——因为没有alt键 所以没有办法 用vi模式也非常方便的
set -o emacs ##切到emacs模式 set -o vi ##切到vi模式 set -o ## 查看当前选项的设置状态 所以你只需要在.bashrc下加入 set -o vi 然后,使用E ...
- 常用的vi的命令模式下的快捷命令
知识点 在VI命令模式下:y 表示拷贝, d 表示删除,p标识粘贴 1.删除 dw 表示删除从当前光标到光标所在单词结尾的内容. d0 表示删除从当前光标到光标所在行首的内容. d$ 表示删除从当前光 ...
- IOS 制作常用代码的快捷方式
输入可以变的对象或类型,要用<#name#>
随机推荐
- MySql 缓冲池(buffer pool) 和 写缓存(change buffer) 转
应用系统分层架构,为了加速数据访问,会把最常访问的数据,放在缓存(cache)里,避免每次都去访问数据库. 操作系统,会有缓冲池(buffer pool)机制,避免每次访问磁盘,以加速数据的访问. M ...
- python2.7.5升级到2.7.14或者直接升级到3.6.4
python2.7.5升级到2.7.14 1.安装升级GCC yum install -y gcc* openssl openssl-devel ncurses-devel.x86_64 bzip2 ...
- 移除数组中指定键(Yii2)
/** * 移除数组中指定key * @param $data * @param $key * @return array */ public static function removeKey($d ...
- 21个CSS3 / JS 时钟
收集了21个酷炫的CSS / JS实现的时钟效果https://oktools.net/clocks 预览 :https://clocks.oktools.net/0/ 源码 :https://cod ...
- 自用|DDoS防御产品集合
这是笔者对国内外的DDoS云防御产品做的一个集合,之前存在自己的文档里很久了,现在修改后发出来大家可以一起看看,有需要的也方便比较按需选择.有免费版的我会放在前面,遇到微量攻击时可以应急,并且也可以感 ...
- tomcat中部署多个项目,webAppRootKey 参数配置
在一个tomcat中部署多个项目时,需要在每个项目的web.xml中配置webAppRootKey参数,如下: <context-param> <param-name>webA ...
- Laravel 中 Controller访问Model函数/常量
<?php // User.php class User extends Model { ; //进行中 const USER_TYPE_TEST = 'test'; //测试用户 // 需要在 ...
- U-boot工作流程分析
bootloader的作用 bootloader就好比是航天飞机升天轨道上的助推器 程序入口:在_start这里 第一阶段程序分析: 1.设置中断向量表 2.设置处理器位SVC模式 3.0.刷新I/D ...
- 网络流 最大流 Drainage Ditches Dinic
hdu 1532 题目大意: 就是由于下大雨的时候约翰的农场就会被雨水给淹没,无奈下约翰不得不修建水沟,而且是网络水沟,并且聪明的约翰还控制了水的流速,本题就是让你求出最大流速,无疑要运用到求最大流了 ...
- jenkins复选框插件Extended Choice Parameter plugin
转载 https://www.cnblogs.com/zndxall/p/9512059.html https://www.cnblogs.com/jwentest/p/7113399.html