Vi Usage
标签: linux 编辑工具
快捷键以及常用命令(前面带:的是命令)
- h -> 左移一个字符
- j -> 下移一行
- k -> 上移一行
- l -> 右移一个字符
- w或Shift+→ -> 光标右移一个字到字首
- W -> 光标右移一个以空格分隔的词到词首
- b -> 光标左移一个字到字首
- B -> 光标左移一个以空格分隔的词到词首
- e -> 光标右移一个字到字尾
- E -> 光标右移一个以空格分隔的词到词尾
- ^ -> 光标移到行首
- \$ -> 光标移到行尾
- { -> 光标移到段落头
- } -> 光标移到段落尾
- Ctrl+d -> 下翻半屏
- Ctrl+u -> 上翻半屏
- Ctrl+f -> 下翻一屏
- Ctrl+b -> 上翻一屏
- G -> 移到缓冲区的最后一行
- num G -> 移到缓冲区第num行
- gg -> 移到缓冲区第一行
- w filename -> 把文件保存到另一个文件名下
------------ x -> 删除当前光标所在位置的字符
- dd -> 删除当前光标所在行
- dw -> 删除当前光标所在位置的单词
- d$ -> 删除当前光标所在位置至行尾的内容
- J -> 删除当前光标所在行行尾的换行符(拼接行)
- u -> 撤销前一编辑命令
- i -> 在光标的前一个位置插入文本
- I -> 在光标所在行行首插入文本
- a -> 在当前光标后最加数据
- A -> 在当前光标所在行行尾最加数据
- r char -> 用char替换当前光标所在位置的一个字符
- R text -> 用text覆盖当前光标所在位置的数据,直到按下ESC键
- o -> 在当前行之下新开一行
- O -> 在当前行之上新开一行
- cw -> 修改从光标所在位置开始的词
- cnw -> 修改从光标所在位置开始的n个词
- yw -> 复制光标所在位置后的词
- ynw -> 复制光标所在位置后的n个词
- y\$ -> 复制光标所在位置到行尾的内容
- yy -> 复制光标所在行
- nyy -> 复制光标所在行以及其后的n-1行
- tnyy -> 复制光标所在行以及其后的n-1行的数据存入buffer t
- p -> 把内容粘贴到光标后的位置
- P -> 把内容粘贴到光标前的位置
- tnp -> 将存在buffer t的n行数据粘贴
- :s/old/new -> 跳转到old第一次出现的地方,并用new替换
- :s/old/new/g -> 用new替换光标所在行的所有old
- :n,ms/old/new -> 用new替换第n到m行每行中第一次出现的old
- :n,ms/old/new/g -> 用new替换第n到m行的所有old
- :%s/old/new/g -> 替换整个文件中的old
- :%s/old/new/gc -> 替换整个文件中的old,但每次出现时提示
- /pattern -> 从光标开始处向文件尾搜索pattern
- ?pattern -> 从光标开始处向文件首搜索pattern
- n -> 在同一方向重复上一次搜索命令
- N -> 在反方向上重复上一次搜索命令
- . -> 执行上一次执行的命令
-------------- ZZ -> 保存并退出
- :w filename -> 写入到filename文件中
- :n,mw filename -> 把第n到m行写入到filename文件中
- :x -> 保存(如果文件被修改过的话)并退出
- :q! -> 不保存退出
- :q -> 退出,如果文件有修改,会有出错提示
- :wq -> 保存并退出
-------------- :number -> 显示行号光标所在行的行号
- :!command -> 执行shell命令command
- :r!command -> 把command命令的执行结果输出到当前行的下一行
有些编辑命令允许使用数字修饰符来指定重复改命令的次数,如
2x会删除从光标位置开始的两个字符,命令5dd会删除从光标当前所在行开始的5行。删除数据时,数据会被保存在一个单独的寄存器中,可以使用p命令取回。
一些小技巧:
:n,$s/^/something在第n行到最后一行的行首插入something%s/$/something/g在文件的每一行尾插入something
tips: s=substitute g=global
vi file1 file2同时编辑两个文件yy拷贝file1中的某行:n切换到file2p在file2光标后粘贴从file1拷贝的内容:N切回到file1
:%s#/usr/bin#/bin#g或:%s//usr/bin//bin/g把文件中所有路径/usr/bin换成/bin
:set nu编辑器每一行显示行号
Vi Usage的更多相关文章
- vi 编辑内容中查找字符位置
[root@localhost gdm]# vi /etc/X11/gdm/gdm.conf # You can also use the gdm-restart and gdm-safe-resta ...
- 我的vi/vim配置文件
位于/etc/vim/的vimrc " All system-wide defaults are set in $VIMRUNTIME/debian.vim and sourced by & ...
- vi 编辑器笔记
摘要: vi从安装到使用 vi从菜鸟到高手 0. vim - Vi IMproved, a programmers text editor 分为 VI和VIM,现在流行的发行版里面VI=VIM 是一个 ...
- 3、树莓派的配置:改静态IP、连接ssh、安装中文字体、安装谷歌输入法、增加USB电流、修改触摸屏分辨率、扩展sd卡空间、修复vi和vim乱码问题、安装配置远程桌面vnc
本博文仅作本人操作过程的记录,留作备忘.自强不息 QQ1222698 1.连接上HDMI线,插上触摸屏,插上键盘,鼠标,网线,启动.系统正常启动,但是一直闪烁,不停的黑屏,是由于触摸屏的usb口供电不 ...
- GNU Screen Usage
分屏: 1.在终端输入screen命令 2.Ctrl+a 然后shift+s 上下分屏,切换到下方Ctrl+a tab然后新建一个window(Ctrl+a c) 3.切换到上方,Ctrl+a tab ...
- [OpenCV-Python] OpenCV 中视频分析 部分 VI
部分 VI视频分析 OpenCV-Python 中文教程(搬运)目录 39 Meanshift 和 和 Camshift 目标 • 本节我们要学习使用 Meanshift 和 Camshift 算法在 ...
- CentOS上svn checkout时报错SSL handshake failed: SSL error: Key usage violation in certificate has been det
局域网安装了个SVN在checkout的时候报错 SSL handshake failed: SSL error: Key usage violation in certificate has bee ...
- SHELL脚本编程的常识和VI常用技巧
来源:http://mprc.pku.edu.cn/mentors/training/TrainingCourses/material/ShellProgramming.HTM#_Toc3751808 ...
- Vi编辑器修改文件.bash_profile可解决backspace出现乱码问题,rlwrap 的安装。
Vi编辑器修改文件.bash_profile可解决backspace出现乱码问题 使用SecureCRT或是pietty_ch连接到一台安装有Oracle DB 10g的RHEL4.2的机器,linu ...
随机推荐
- 【Path Sum】cpp
题目: Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up ...
- android手机配置hosts文件
Android设备测试服务器时,可能需要修改 hosts 文件指定域名到对应的 IP 地址.Android 是基于 Linux 的系统,与 Linux 类似,通过 hosts 文件来设置. 在 And ...
- 使用Ninject+Moq在单元测试中抽象数据访问层
一.测试方法的业务逻辑时,通常都需要从数据库读取测试数据,但是每次初始化数据库数据都很麻烦,也会影响到其它业务对数据的访问,怎样抽象数据访问层呢?就是用Moq去模拟数据访问的逻辑 二.步骤如下 ...
- SGU 185 Two shortest 最短路+最大流
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=21068 Yesterday Vasya and Petya qua ...
- depthstencil buffer 不支持 msaa
phyreengine dx11 MRT不支持 depth rendertarget 的msaa 他里面竟然只写着,// not supported yet !!!! 导致hdao 时开msaa的话, ...
- input输入框的border-radius属性在IE8下的完美兼容
在工作中我们发现搜索框大部分都是有圆角的,为此作为经验不足的前端人员很容易就想到,给input标签添加border-radius属性不就解决了嘛.不错方法确实是这样,但是不要忘了border-radi ...
- Cayley n顶点树数定理
出处:http://blog.csdn.net/gongqian12345/article/details/7445573 今天遇到一个问题:在一个n阶完全图的所有生成树的数量为n的n-2次方,想了好 ...
- 使用git了解代码编写过程
在看教程时,有的老师会将代码放到github,如果不想跟着视频一步一步来,那就直接clone整个代码,但整个看着又有点蒙,那就使用版本切换的功能了. 首先 git clone 下载下来 git log ...
- HDU 1698 Just a Hook (线段树区间更新)
题目链接 题意 : 一个有n段长的金属棍,开始都涂上铜,分段涂成别的,金的值是3,银的值是2,铜的值是1,然后问你最后这n段总共的值是多少. 思路 : 线段树的区间更新.可以理解为线段树成段更新的模板 ...
- 基础DOM和CSS操作(一)
DOM简介 DOM是一种文档对象模型,方便开发者对HTML结构元素内容进行展示和修改.在JavaScript中,DOM不但内容庞大繁杂,而且我们开发的过程中需要考虑更多的兼容性.扩展性.在jQuery ...