Linux vi 中移动光标 命令
移动光标
上:k nk:向上移动n行 9999k或gg可以移到第一行 G移到最后一行
下:j nj:向下移动n行
左:h nh:向左移动n列
右:l nl:向右移动n列
w:光标以单词向前移动 nw:光标向前移动n个单词 光标到单词的第一个字母上
b:与w相反
e: 光标以单词向前移动 ne:光标向前移动n个单词 光标到单词的最后一个字母上
ge:与e相反
$:移动光标到行尾 n$:移动到第n行的行尾
0(Num):移动光标到行首
^:移动光标到行首第一个非空字符上去
f<a>:移动光标到当前行的字符a上,nf<a>移动光标到当前行的第n个a字符上
F:相反
%:移动到与制匹配的括号上去(),{},[],<>等。
nG:移动到第n行上 G:到最后一行
CTRL+G 得到当前光标在文件中的位置
向前翻页:CTRL+F
向下移动半屏:CTRL+G
向后翻页:CTRL+B
存盘:
:q! :不存盘退出
:e! :放弃修改文件内容,重新载入该文件编辑
:wq :存盘退出
dw:删除一个单词,需将光标移到单词的第一个字母上,按dw,如果光标在单词任意位置,用daw
dnw:删除n个单词
dne:也可,只是删除到单词尾
dnl:向右删除n个字母
dnh:向左删除n个字母
dnj:向下删除n行
dnk:向上删除n行
d$:删除当前光标到改行的行尾的字母
dd:删除一行
cnw[word]:将n个word改变为word
cc:改变整行
C$:改变到行尾
J: 删除换行符,将光标移到改行,按shift+j删除行尾的换行符,下一行接上来了.
u: 撤销前一次的操作
shif+u(U):撤销对该行的所有操作。
:set showmode :设置显示工作模式
o:在当前行的下面另起一行
O(shift+o):在当前行的上面另起一行
nk或nj:光标向上或向下移n行,n为数字
an!【ESC】:在行后面加n个感叹号(!)
nx:执行n次x(删除)操作
ZZ:保存当前文档并退出VIM
:help :查看帮助文档,在这之中,按CTRL+] 进入超连接,按CTRL+O 返回。
:help subject :看某一主题的帮助,ZZ 退出帮助
:set number / set nonumber :显示/不显示行号
:set ruler /set noruler:显示/不显示标尺
/pattern 正方向搜索一个字符模式
?pattern 反方向搜索一个字符模式
然后按n 继续向下找
把光标放到某个单词上面,然后按×号键,表示查找这个单词
查找整个单词:/\<word\>
:set hlsearch 高亮显示查找到的单词
:set nohlsearch 关闭改功能
m[a-z]:在文中做标记,标记号可为a-z的26个字母,用`a可以移动到标记a处
r:替换当前字符
nr字符:替换当前n个字符
查找替换:
way1:
/【word】 :查找某个word
cw【newword】:替换为新word
n: 继续查找
.: 执行替换
way2:
:s/string1/string2/g:在一行中将string1替换为string2,g表示执行 用c表示需要确认
:num1,num2 s/string1/string2/g:在行num1至num2中间将string1替换为string2
:1,$ s/string1/string2/g:在全文中将string1替换为string2
v:进入visual 模式
【ESC】退出
V:shift+v 进入行的visual 模式
CTRL+V:进如块操作模式用o和O改变选择的边的大小。
粘贴:p,这是粘贴用x或d删除的文本
复制:
ynw:复制n个单词
yy:复制一行
ynl:复制n个字符
y$:复制当前光标至行尾处
nyy:拷贝n行
完了用p粘贴
:split:分割一个窗口
:split file.c :为另一个文件file.c分隔窗口
:nsplit file.c: 为另一个文件file.c分隔窗口,并指定其行数
CTRL+W在窗口中切换
:close:关闭当前窗口
在所有行插入相同的内容如include<,操作方法如下:
将光标移到开始插入的位置,按CTRL+V进入VISUAL模式,选择好模块后
按I(shift+i),后插入要插入的文本,按[ESC]完成。
:read file.c 将文件file.c的内容插入到当前光标所在的下面
:0read file.c 将文件file.c的内容插入到当前文件的开始处(第0行)
:nread file.c 将文件file.c的内容插入到当前文件的第n行后面
:read !cmd :将外部命令cmd的输出插如到当前光标所在的下面
:n1,n2 write temp.c 将本文件中的n1,到n2行写入temp.c这个文件中去
CTRL+L刷新屏幕
shift + < 左移一行
shift + > 右移一行
u: undo
CTRL+R: re-do
J: 合并一行
CTRL+p 自动完成功能
CTRL+g 查看当前文件全路径
q[a-z] 开始记录但前开始的操作为宏,名称可为【a-z】,然后用q终止录制宏。
用reg显示当前定义的所有的宏,用@[a-z]来在当前光标处执行宏[a-z].
movement by screens
ctrl + F - 向前滚动一屏,光标移动到下一屏的第一行
ctrl + B - 向后滚动一屏,光标移动到上一屏的最后一行
ctrl + D - 向前滚动半屏,光标移动到屏幕中间一行
ctrl + U - 向后滚动半屏,光标移动到屏幕中间一行
ctrl + E - 向前滚动一行,光标位置保持不变
ctrl + Y - 向后滚动一行,光标位置保持不变
如果想滚动屏幕但却不希望移动光标的位置,可以使用 z 命令。
zENTER - 滚动屏幕使光标所在行移动到屏幕第一行
z.(点号) - 滚动屏幕使光标所在行移动到屏幕中间
z-(减号) - 滚动屏幕使光标所在行移动到屏幕最后一行
在 z 命令前添加 n 前缀表示把第 n 行移动到屏幕的相应位置,如 200zENTER 表示把第 200 行移动到屏幕第一行。
有时系统中会出现一些系统消息影响你的编辑工作,这时使用命令 ctrl + L 可以使 vi 刷新屏幕。
H - 光标移动到当前屏的第一行
M - 光标移动到当前屏的中间一行
L - 光标移动到当前屏的最后一行
nH - 光标移动到当前屏从第一行开始向下的第 n 行
nL - 光标移动到当前屏从最后一行开始向上的第 n 行
ENTER、+ - 光标移动到下一行的第一个字符
-(减号) - 光标移动到上一行的第一个字符
上面三个命令把光标移动到一行中第一个不是空白或 tab 字符的位置。
^ - 光标移动到行内第一个非空白的字符处
0 - 光标移动到行内的第一个字符处,包括空白
n| - 光标移动到当前行的第 n 个字符处
movement by text blocks
e - 光标移动到单词末尾
E - 光标移动到单词末尾,忽略标点
( - 光标移动到当前句的开头
) - 光标移动到下一句的开头
{- 光标移动到当前段落的开头
} - 光标移动到下一段落的开头
[[ -光标 移动到当前 section 的开头
]] -光标 移动到下一 section 的开头
寻找句子的结尾,vi 查找标点:? , . !。有两种情况 vi 认为是句子的结尾,上述标点后面紧跟两个以上的空格,或是一行的最后一个非空白字符为上述标点中的一个。
movement by searchs
/pattern - 从光标所在位置开始,向文件的结尾搜索 pattern,如果能够搜索到,光标会移动到 pattern 的第一个字符处
?pattern - 从光标所在位置开始,向文件的开头搜索 pattern,如果能够搜索到,光标会移动到 pattern 的第一个字符处
n - 在同一个方向搜索下一个匹配的 pattern
N - 在相反的方向搜索下一个匹配的 pattern
/ENTER - 效果同命令 n
?ENTER - 效果同命令 N
set 选项 wrapscan 设置是否循环搜索。如果开启 wrapscan 选项,当搜索到最后一个 pattern 后则会从文件的开头或结尾继续搜索,如果关闭 wrapscan 选项,搜索到最后一个 pattern 后会显示一个错误消息。
行内搜索
下面这些命令仅在当前行执行搜索,不会把光标移动到其他行。( 以下命令中的 x 可以为任何字符 )
fx - 从光标所在处向后查找字符 x,并把光标移动到字符 x 上
Fx - 从光标所在处向前查找字符 x,并把光标移动到字符 x 上
tx - 从光标所在处向后查找字符 x,并把光标移动到 x 前一个字符上
Tx - 从光标开始处向前查找字符 x,并把光标移动到 x 后一个字符上
; - 在同一个方向重复执行前一个行内搜索命令
, - 在相反方向重复执行前一个行内搜索命令
:set nu 显示行号,:set nonu 不显示行号。命令 ctrl + G 会使 vi 在屏幕的最下方显示如下信息:当前行号,文件的行数,当前显示的行数占文件总行数的百分比。
``(反引号) - 光标移回上一次光标移动之前光标所在的位置。如果执行了一些编辑后使用 G 命令移动光标,那么 `` 会把光标移回执行编辑的位置;如果刚执行过搜索,`` 则会把光标移回开始搜索时光标所在位置。
''(两个单引号) - 光标移回上一次光标移动之前光标所在行的第一个字符处
光标移动:
zENTER - 滚动屏幕使光标所在行移动到屏幕第一行
z.(点号) - 滚动屏幕使光标所在行移动到屏幕中间
z-(减号) - 滚动屏幕使光标所在行移动到屏幕最后一行
行内搜索:
fx - 从光标所在处向后查找字符 x,并把光标移动到字符 x 上
Fx - 从光标所在处向前查找字符 x,并把光标移动到字符 x 上
tx - 从光标所在处向后查找字符 x,并把光标移动到 x 前一个字符上
Tx - 从光标开始处向前查找字符 x,并把光标移动到 x 后一个字符上
; - 在同一个方向重复执行前一个行内搜索命令
, - 在相反方向重复执行前一个行内搜索命令

Linux vi 中移动光标 命令的更多相关文章
- linux shell 中的sleep命令
开始还以为是这样的语法: sleep(1), 后面发现是: linux shell 中的sleep命令 分类: LINUX 在有的shell(比如linux中的bash)中sleep还支持睡眠(分,小 ...
- linux vi 中按了ctrl+s后没法退出
linux vi 中按了ctrl+s后无法退出 Linux 中使用vi编辑文件 不小心按了Ctrl + S (习惯了) 结果终端就跟死了一样, 解决办法: Ctrl+Q
- Linux系统中有趣的命令(可以玩小游戏)
Linux系统中有趣的命令(可以玩小游戏) 前言 最近,我在看一些关于Linux系统的内容,这里面的内容是真的越学越枯燥,果然学习的过程还是不容易的.记得前几个月初学Linux时,有时候就会碰到小彩蛋 ...
- Linux vi中查找字符内容的方法
使用vi编辑器编辑长文件时,常常是头昏眼花,也找不到需要更改的内容. 这时,使用查找功能尤为重要. 方法如下: 1.命令模式下输入“/字符串”,例如“/Section 3”. 2.如果查找下一个, ...
- linux vi 中s 替换方法
vi/vim 中可以使用 :s 命令来替换字符:s/vivian/sky/ 替换当前行第一个 vivian 为 sky :s/vivian/sky/g 替换当前行所有 vivian 为 sky :n, ...
- Linux学习过程中的简单命令
1.su su- 与 sudo (1) 普通用户和root转换:su 用户名或root 不知道root密码的情况下:普通 -> root:sudo su roo ...
- Linux系统中的tar命令
时间一长什么东西都容易忘记,尤其是一些不常用的东西忘记的更快,所以避免忘记,就记录下来,可以方面使用的时候查询.Tar命令在linux系统中算是一个比较重要的命令,今天就针对该命令进行总结一下. 1. ...
- linux环境中通过useradd命令,创建用户的时候指定用户的base-dir
需求说明: 今天一个同事,问了一个这样的问题,在linux环境中,创建用户的时候,默认的是在/home目录下创建一个与用户名相同的家目录, 如何能够将这个/home更换成一个其他的,比如/opt/ap ...
- Linux系统中使用lftp命令实现FTP上传下载
Linux 下常用的操作命令有 ftp. lftp 和 sftp,图形化界面非常好用的有 FileZilla.不过在服务器命令界面中,lftp使用比较方便,功能也比ftp更加强大.lftp的界面很像L ...
随机推荐
- Hibernate,get()和load()区别
最主要区别在于,检索策略不同. 无论get和load,首先都会去session缓存中看有没有现成的数据.没有的话,get会采用立即检索策略.即:将对象从数据库检索出来并返回,不使用代理类.load的话 ...
- Python+Django+Eclipse 在Windows下快速开发自己的网站
一.配置开发环境 我的开发环境是:Python3.3.2 + Django1.5.2 + Eclipse 1.安装Python 下载地址:http://www.python.org/getit/ 安装 ...
- Java BIO、NIO、AIO-------转载
先来个例子理解一下概念,以银行取款为例: 同步 : 自己亲自出马持银行卡到银行取钱(使用同步IO时,Java自己处理IO读写). 异步 : 委托一小弟拿银行卡到银行取钱,然后给你(使用异步IO时,Ja ...
- python: shutil模块 -拷贝文件
import shutil #拷贝文件 #存在文档1文件 shutil.copyfile('文档1','新文件') 随机验证码-4位 import random random_code='' for ...
- 64位系统安装ODBC驱动的方法
为了更充分的利用硬件资源,我想很多人都开使用64位操作系统了,同时你可以也发现了在64位操作系统上ODBC的驱动找不到了,所以ODBC的东西都没法用了. 因为2007以前版本的Office只有32位版 ...
- jdk 与jre的区别
jdk就是java的开发工具集,顾名思义就是你做开发用的,其中包括javac,也就是java compiler等. jre(java runtime environment),就是java程序的运行环 ...
- Oracle连接字符串C#
Password=密码;User ID=ID;Data Source=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ...
- 如何快捷输入函数上方的注释代码(Summary)
写完类或函数(注意必须写完,不然出现的信息会不完整)后,在其上方空行输入/**,然后回车,就可以为其添加Summary.
- 操作SQLite的dbhelper
操作SQLite的dbhelper public class DbHelper { string connStr = @"Data Source=" + System.Enviro ...
- Windows7下安装搭建Ngnix教程
简介: Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 服务器. Nginx 是由 Igor Syso ...