鸟哥linux(一)vi的操作摘录

来源:互联网 发布:法国小众香水品牌 知乎 编辑:程序博客网 时间:2024/04/29 13:12

这个是摘录于鸟哥私房菜的,方便查看

//移动
h: 光标向左移动一个字符
j: 光标向下移动一个字符
k: 光标向上移动一个字符
l: 光标向右移动一个字符

多次移动:数字 + 方向, 30j 或 30下

Ctrl - f:向下移动一页
Ctrl - b:向上移动一页
Ctrl - d:向下移动半页
Ctrl - u:向上移动半页

+:光标移动到非空格符的下一列
-:光标移动到非空格符的上一列

n<space>: 移动这一行n个字符 例如 30+空格

0(数字):移动到一行的最前面(常用)
$      :移动到一行的最后面(常用)

H:移动到这个屏幕的最上方的那一行
M:移动到这个屏幕的中央那一行
L:光标移动到这个屏幕最下方那一行
G:移动到这个文件的最后一行(常用)
nG:移动到这个文件的第n行
gg:移动到这个文件的第一行(常用)
n<Enter>:光标向下移动n行(常用)

//搜索与取代
/word - 查找一个字符串
?word - 向光标之上查找一个字符串
n(英文) - 搜索下一个
N       - 搜索上一个

:n1,n2s/word1/word2/g - 在n1行和n2行之间搜索word1并替换为word2
:1,$s/word1/word2/g - 整个文件之间搜索word1并替换为word2
:1,$s/word1/word2/gc - 整个文件之间搜索word1并替换为word2,在替换前会有提示

//删除,复制和粘贴
x - 向后删除一个字符
X - 向前删除一个字符
nx - 连续向后删除n个字符
dd  - 删除一行
ndd - 删除n行
d1G - 删除光标所在到第一行的所有数据
dG  - 删除光标所在到最后一行的所有数据
d$  - 删除光标所在处,到该行的最后一个字符
d0  - 删除光标所在处,到该行的最前面一个字符
yy  - 复制当前行
nyy - 复制从当前行向下的n行
y1G - 复制当前行到第一行
yG  - 复制当前行到最后一行
y0  - 复制光标所在处,到该行的最前面一个字符
y$  - 复制光标所在处,到该行的最后面一个字符
p   - 粘贴当前复制的行(下)
P   - 粘贴当前复制的行(上)
u   - undo
Ctrl-r - redo
.   - 重复上一次的动作

//编辑
i - 在光标后插入一个字符
I - 在当前行第一个非空格符处开始插入

a - 从当前光标后插入一个字符
A - 从当前行的最后一列开始插入

o - 在当前行的下一行插入一行
O - 在当前行的上一行插入一行

r - replace光标所在的那一个字符
R - 一直replace,知道按下ESC

//指令模式
:w - save
:w! - 强制save,不一定成功
:q - quit
:q! - 强制quit
:wq - 储存后离开
:e! - 将文件还原到最原始的状态
ZZ - 文件改动则储存离开,否则不存
:w [filename] -  save as
:r [filename] - 将filename里的内存加到当前打开的文件的后面
:n1,n2 w [filename] - 将n1到n2的内存储存成filename这个文件
:! command - 暂时离开vi到命令行模式下执行命令行
:set nu - 显示行号
:set nonu - 不显示行号

//多文件编辑
vi file1 file2 ...
:n - 编辑下个文件
:N - 编译上个文件
:files - list当前打开的所有文件

//区块选择
v - 字符选择,光标移动后会变白
V - 行选择,光标经过的行会变白
Ctri-C - 区块选择,可以用长方形的方式来选择
y - 复制反白的地方
d - 删除反白的地方

//多窗口编辑
:sp [filename] - 在新窗口打开一个文件,如果没有filename则表示为当前文件
ctrl-w + j - 切换到下一个窗口
ctrl-w + k - 切换到上一个窗口

//vim 环境设置 vi ~/.vimrc
:set nu / :set nonu - 显示行号
:set hlsearch / set hlsearch - 高亮显示搜索到的字符串
:set autoindent / :set noautoindent - 自动缩排
:set backup / :set nobackup - 备份文件 filename~
:set ruler - 显示右下角的rule
:set showmode - 显示左下角的help
:set backspace=(012) - 设置backspace的行为,2为可以删除任意值,0或1为仅可以删除新输入的文字
:set all - 显示目前所有的环境数值设定
:syntax (off|on) - 根据语法显示不同的颜色

//格式转换
dos2unix [-kn] file [newfile]
unix2dos [-kn] file [newfile]


   

原创粉丝点击