`
随枫霏
  • 浏览: 135518 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

《学习vi和vim编辑器》读书笔记——vi基础篇

vi 
阅读更多

 

第一章 vi文本编辑器


Unix环境下的编辑器有多种,一般可以分为

行编辑器 ed ex
一次只能显示一行
全屏编辑器 vi emacs 
显示文件的一部分


vi命令的特点:
  • 字母区分大小写
  • 输入时不会显示在屏幕上
  • 不需要在命令后按Enter键

打开关闭文件
使用vi进行文本编辑的时候,是在内存里的文本副本上进行操作,也就是说是在缓冲区中进行操作,存储编辑的结果时,实际上是将缓冲区的内容写入文件中。

打开文件的命令是:

保存并离开文件
命令模式 ZZ 或者 :wq

结束不保存结果
:e! 恢复到上一次存储的文件内容
:q! 消除所有编辑结果,并退出vi

:w newfile 可将编辑的结果写入新的文件(就是另存为)


第二章 简单的文本编辑器


vi命令
刚进入vi之后,处于命令模式中,按i会进入插入模式,在插入模式中按Esc键会进入命令模式。

---------------------------------------
Windows环境下gVim的准备
(1)打开gVim,输入mkvimrc! ~/.vimrc  该命令会在用户目录下新建一个.vimrc的脚本文件,gvim每次启动的时候都会读取这个文件里的配置
(2)编辑~/.vimrc文件,加入一些脚本
set nobackup     不备份文件,避免自动产生a.txt~备份文件
syntax on              语法高亮
set number           显示行数
colo elflord            设置颜色
set guifont=Consolas:h15:cANSI  设置字体为Consolas,字体大小h15,为西欧cANSI字符
set nocompatible
set ai   自动缩进
set si   智能缩进
set nu  显示行数
set ts=4  一个tab=4个空格
set bs=indent,eol,start
set guioptions-=T  无工具条
set
 foldmethod=indent " 折叠方式为 依靠缩进
colorscheme murphy
---------------------------------------

单一的移动
h/Backspace 左移一个字符
j/Enter 下移一个字符
k 上移一个字符
l 右移一个字符

数值参数
在移动命令之前加上数字:例如4l 右移4个字符

在一行中移动
vi会以用户按Enter键作为一行的换行,而与显示行无关
:set wm=10 设置与右边界的距离是10个字符的时候就会换行
0 移动到行首
$ 移动到行尾

按照文本块移动
w 向后移动一个单词(标点、符号算作一个单词)
W 向后移动一个单词(标点、符号不算作一个单词)
b 向前移动一个单词(标点、符号算作一个单词)
B 向前移动一个单词(标点、符号不算作一个单词)
G 移动到文件的尾部
前加数字表示移动到指定行
同样支持前加数字

附加文本
a 在光标之后插入文本
i 在光标之前插入文本
更改文本
c + 光标移动命令:结束后需要按Esc键回到命令模式
cw 从光标到这个单词末尾
c2b 从光标往前2个单词
c$ 从光标到本行末尾(效果同C)
c0 从光标到此行的开头
cc 覆盖当前一正行



r用于修改单个字符
r+修改后的字符,完成后立即回到命令模式

替换文本
s 替换一个字符
S 替换一整行字符
R 进入覆盖模式

更改大小写
~ 可以更改字符的大小写,加数字可以制定从光标开始的范围

删除文本
d 删除命令
dw 删除一个单词(单词之后的空格也会被删除)
de 删除一个单词(单词之后的空格也不会被删除)
db 向前删除一个单词
d$ 或者 D 删除到一行的结尾
d0 删除到一行的开头
dd 删除一整行
x 删除光标后面的一个字符
X 删除光标前后的一个字符

恢复
u 撤销上一个命令
U 恢复一整行
p 恢复最近几次的删除的内容
vi会将最近9次删除的整行数据放在9个缓冲区中(移动文本讲解)

移动文本
vi会将删除之后的文本放在缓冲区中,此时使用放置命令p,就实现了剪切-粘贴
删除的整行,会在光标所在行的下一行粘贴文本
删除的不是整行,会在光标所在位置的下一个字符开始粘贴

对调2个字符
xp x是删除一个字符,p是粘贴

复制文本
使用y拖拽、p放置
同样可以配合移动键使用
yw y$ yy
不同的是Y是复制一整行
拖拽命令和删除命令共享缓冲区

重复撤销命令
上一个命令会保存在一个缓冲区中
. 重复上一个命令

插入文本的其他方法
A 行尾附加文本
I 行首添加文本
o 在下一行添加文本
O 在上一行添加文本
s 删除光标所在位置的一个字符后,进入插入模式
S 删除一整行后,进入插入模式
R 在光标坐在位置进入替换模式


合并
J 合并当前行和下一行
3J 合并3行


第三章 快速移动位置


根据屏幕移动
^F 往前滚动一整屏
^B 往后滚动一整屏
^D 往下滚动半屏
^U 往上滚动半屏

z命令调整屏幕位置
z Enter 当前行作为屏幕顶端行 光标移动到屏幕顶端
z. 当前行作为屏幕中间行 光标移动到屏幕中间
z- 当前行作为屏幕底端行 光标移动到屏幕底端
z之前加数字表示处理的行号

屏幕重绘 ^L

H
移动到屏幕顶端
M 移动到屏幕中间
L 移动到屏幕底端
nH 移动到屏幕顶端开始往下的第n行
nL 移动到屏幕底端开始往上的第n行

行移动
Enter 移动到下一行的第一个字符
+ 移动到i下一行的第一个字符
- 移动到上一行的第一个字符



当前行移动
^ 移动到当前行第一个非空字符处
n| 移动到当前行第n列

文本块移动
e 移动到单词的结尾
E 移动到单词的结尾(忽略标点符号)
( 移动到句子开头
) 移动到句子结尾
{ 移动到段的开头
} 移动到段的结尾
[[ 移动到这一节的开头
]] 移动到这一节的结尾

搜索
/ 向下搜索
? 向上搜索
n 与上一搜索相同方向,继续搜索
N 与上一搜索相反方向继续搜索
/Enter 往下继续搜索
?Enter 往上继续搜索

通过搜索修改文本
搜索命令之前加上文本操作
d/sad 删除向下搜索到的第一个sad

一行之内的搜索
fx 搜索本行中下一个出现x的地方
Fx 搜索本行中上一个出现x的地方
; 重复上一个搜索,方向相同
, 重复上一个搜索,方向相反

行间跳转
G 跳转到最后一行
nG 跳转到第n行
^G 查看当前所在行
:set nu 设置行号
`` 回到上次跳转的光标位置
'' 回到上次所在行的首位置


第四章 越过基础的藩篱


打开文件选项
前进到特定文位置
vi +n file 在第一行打开file
vi + file 在最后i韩打开file
vi +/pattern file 在第一个出现pattern的地方打开file
pattern中如果出现空格
可以 +/"you can"
或者+/you\ can指定

只读模式
vi -R file
view file 可以指定打开文件的位置
强制写入文件可以保存
:w!
:wq!

缓冲区
恢复删除
对于删除的行级别的数据,每次删除都会放在缓冲区中,最后一次删除的内容放在缓冲区1中,倒数第二次放在缓冲区2中。
"2p 恢复缓冲区2中的数据
"1pu.u.u 对于不确定删除的缓冲区编号,可以一直按u.来确认
因为每按一次.缓冲区的编号会相应增加

命令缓冲区
命名缓冲区要使用"加小写字母的形式
"dyy 将当前行粘贴到缓冲区d中
"dP 将缓冲区d的内容放置在光标前
"dp 将缓冲区d的内容放置在光标后

标记
mx 将当前光标位置标记为x
'x 将光标移动到x标记的所在行的行首
`x 将光爆移动到x标记所在的位置
'' 回到上次标记所在行的行首
`` 回到上次标记所在位置
标记仅对当前会话有效




分享到:
评论

相关推荐

    VI 学习记录学习笔记VI

    本篇学习笔记将深入探讨VI的使用技巧,包括文本编辑、快速移动、缓存区操作以及ex编辑器的功能。 一、文本编辑命令模式下: 在命令模式中,你可以通过以下方式操作文本: 1. 检查磁盘剩余空间:`:!df`。 2. 移动...

    华清学院学院笔记

    本篇笔记主要介绍 Linux 基础命令和 VI 编辑器基础知识。VI 编辑器是 UNIX 系统中最基本的编辑器,它提供了一个视窗设备,通过它可以编辑文件。学习 VI 编辑器可以帮助读者在 UNIX 世界里畅行无阻、游刃有余。 一、...

    Tensorflow学习笔记 -Python 语法学习笔记二之函数,vim逻辑条件语句

    本篇笔记主要涉及的是Python语言和Vim编辑器的使用,以及Tensorflow学习的基础。首先,我们来深入了解一下Vim编辑器及其基本操作。 Vim是一个强大的文本编辑器,对于程序员来说非常有用。它允许用户高效地编写和...

    Linux学习笔记(强悍总结值得一看)

    - **vi/vim**:全屏编辑器,学习曲线较陡峭,但功能强大。 - **nano**:简单易用的文本编辑器,适合初学者。 4. **权限和所有权** - **chmod**:改变文件或目录的权限(读、写、执行)。 - **chown**:更改文件...

    linux学习笔记,挺好的

    `vi`和`vim`是高级编辑器,需要一些学习,而`nano`较为简单易用。 以上仅是Linux命令海洋的一小部分,深入学习还需要了解文件权限、进程管理、网络配置、脚本编写等方面的知识。通过不断的实践和探索,你将逐渐掌握...

    Linux笔记

    "工具"标签则意味着笔记可能涵盖了各种在Linux环境中常用的命令行工具和系统管理工具,例如grep、sed、awk、vi/vim编辑器,以及用于监控、调试和自动化任务的工具,如top、htop、strace、cron等。这些工具是Linux...

    Linux学习-开山篇

    vi和Vim编辑器 开机、重启和用户登录注销 用户管理 实用指令 定时任务调度 磁盘分区、挂载 网络配置 进程管理 RPM和YUM 三、Linux 学习方向 3.1 Linux运维工程师 (保障服务器正常运行,故障处理,服务器...

    Unix学习笔记

    在Linux环境中,我们可以通过“vi”或“vim”编辑器来编辑文本文件,这是Unix/Linux世界中的标准文本编辑工具。对于更复杂的脚本编程,可以使用“bash”或其他Shell(如csh、tcsh)编写shell脚本,实现自动化任务...

    linux学习笔记

    `:在vi/vim编辑器中的退出命令,分别表示直接退出、保存退出和强制退出。 - `login/logout/exit`:登录、登出和退出当前会话。 - `shutdown/reboot/poweroff`:关闭或重启系统。 - `pwd`:显示当前工作目录。 - `ls...

    AIX视频学习笔记(现场版)

    2. 文件编辑:`vi`或`vim`是常用的文本编辑器,`nano`则为更简单的选项。 3. 系统管理:`ps`、`top`、`vmstat`、`iostat`等命令用于监控系统状态,`df`和`du`用于查看磁盘空间。 四、AIX文件系统 1. JFS2:AIX的...

    linux-基础的笔记

    `vi`或`vim`是强大的命令行文本编辑器,它们有三种模式:命令行模式、插入模式和底行模式。在命令行模式下,可以执行移动、删除、复制等操作,通过`i`、`a`、`o`等键进入插入模式进行编辑,按下`Esc`返回命令行模式...

    鸟哥的LINUX基础与服务器部分

    此外,鸟哥还讲解了Linux的基本操作,如命令行界面的使用、文件和目录管理、文本编辑器(如vi/vim)的使用、权限管理、进程管理等内容。这部分内容旨在使读者熟悉Linux环境,掌握日常操作。 “服务器架设篇”则更...

    C语言全套笔记,包括数据类型、指针的应用、结构体和函数的定义等等内容

    *如何编辑 C 语言:使用 VIM 或是 VI 编辑器。 *如何编译 C 语言:使用命令 gcc 输出文件名 -o 输入文件名。 *如何运行编译好的 C 语言程序:./输出文件名。 *查看是否安装了 GCC:gcc -v。 Visual Studio *Visual...

    linux服务器命令用法笔记

    随着对Linux的深入学习,你会发现更多强大的工具和技巧,比如`tar`用于压缩和解压文件,`vi/vim`作为强大的文本编辑器,以及`ssh`进行远程登录和操作。不断实践和探索,你将成为一名优秀的Linux系统管理员。

    Linux笔记.docx

    这篇笔记主要涵盖了五个关键模块:目录操作、文件操作、常用命令、用户命令和编辑器vim(vi),以及shell编程。以下将对这些模块进行详细解释。 **目录操作** 1. **显示目录**:`ls`命令用于列出目录内容。通过...

    linux 命令笔记

    16. **vi/vim**:文本编辑器,用于创建和编辑文件。 17. **chmod**:改变文件或目录的权限。例如,`chmod 755 file`设置文件为可执行权限。 18. **chown** 和 **chgrp**:更改文件或目录的所有者和组。 19. **tar...

    linux运维笔记:最常用的150个命令.docx

    21. vi/vim命令:命令行文本编辑器。 三、文件压缩及解压缩命令(4个) 1. tar命令:打包压缩zcf,解压缩xf。 2. unzip命令:解压文件。 3. zip命令:打包压缩。 4. gzip命令:gzip打包压缩,解压缩工具。 四、...

    linux常用命令.docx

    - `vi` 或 `vim` 是常用的文本编辑器,用于编辑和保存文件。 - `mv` 移动文件或重命名,例如:`mv a/wenjian1.txt b/file1.txt`。 - `cp` 复制文件,例如:`cp srcFile destFile`。 - `cat` 一次性显示整个文件...

Global site tag (gtag.js) - Google Analytics