`
nedvedheqing
  • 浏览: 105367 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

FreeBSD vi编辑器

阅读更多

原文来自:野蔷薇   http://www.yeqiangwei.com/club/f10b0l0fp4t345473p1.html   

1、关于文本编辑器;
文本编辑器有很多,比如图形模式的gedit、kwrite、OpenOffice ... ...
,文本模式下的编辑器有vi、vim(vi的增强版本)和nano ... ...
vi和vim是我们在Linux中最常用的编辑器。我们有必要介绍一下vi(vim)最简单的用法,以让Linux入门级用户在最短的时间内学会使用它。
nano 工具和DOS操作系统下的edit操作相似,使用简单,我们不作介绍了,如果您有兴趣,不妨尝试一下;

2、vi 编辑器;

为什么要学会简单应用vi
vi或vim是Linux最基本的文本编辑工具,vi或vim虽然没有图形界面编辑器那样点鼠标的简单操作,但vi编辑器在系统管理、服务器管理
中,永远不是图形界面的编辑器能比的。当您没有安装X-windows桌面环境或桌面环境崩溃时,我们仍需要字符模式下的编辑器vi;
vi或vim 编辑器在创建和编辑简单文档最高效的工具;

3、vi 编辑器的使用方法;

3.1 如何调用vi ;

[root@localhost ~]# vi filename
~
~
~
~
~
~
~
~
3.2 vi 的三种命令模式;
Command(命令)模式,用于输入命令;
Insert(插入)模式,用于插入文本;
Visual(可视)模式,用于视化的的高亮并选定正文;

3.3 文件的保存和退出;
Command 模式是vi或vim的默认模式,如果我们处于其它命令模式时,要通过ESC键切换过来。
当我们按ESC键后,接着再输入:号时,vi会在屏幕的最下方等待我们输入命令;
:w 保存;
:w filename 另存为filename;
:wq! 保存退出;
:wq! filename 注:以filename为文件名保存后退出;
:q! 不保存退出;
:x 应该是保存并退出 ,功能和:wq!相同

3.4 光标移动;

当我们按ESC进入Command模式后,我们可以用下面的一些键位来移动光标;
j 向下移动一行;
k 向上移动一行;
h 向左移动一个字符;
l 向右移动一个字符;
ctrl+b 向上移动一屏;
ctrl+f 向下移动一屏;
向上箭头   向上移动;
向下箭头   向下移动;
向左箭头   向左移动;
向右箭头   向右移动;
我们编辑一个文件时,对于 j、k、l和h键,还能在这些动作命令的前面加上数字,比如 3j,表示向下移动3行。

3.5 插入模式(文本的插入);

i 在光标之前插入;
a 在光标之后插入;
I 在光标所在行的行首插入;
A 在光标所在行的行末插入;
o 在光标所在的行的上面插入一行;
O 在光标所在的行的下面插入一行;
s 删除光标后的一个字符,然后进入插入模式;
S 删除光标所在的行,然后进入插入模式;

3.6 文本内容的删除操作;

x 一个字符;
#x 删除几个字符,#表示数字,比如3x;
dw 删除一个单词;
#dw 删除几个单词,#用数字表示,比如3dw表示删除三个单词;
dd 删除一行;
#dd 删除多个行,#代表数字,比如3dd 表示删除光标行及光标的下两行;
d$ 删除光标到行尾的内容;

J 清除光标所处的行与上一行之间的空格,把光标行和上一行接在一起;


3.7 恢复修改及恢复删除操作;

u 撤消修改或删除操作;
按ESC键返回Command(命令)模式,然后按u键来撤消删除以前的删除或修改;如果您想撤消多个以前的修改或删除操作,请按多按几次u。这和Word的撤消操作没有太大的区别;

3.8 可视模式;

在最新的Linux发行版本中,vi提供了可视模式,因为这个功能是vim才有的。如果您用的vi没有这个功能,就换成vim就有了。打开可视模式,按ESC键,然后按v就进入可视模式;
可视模式为我们提供了极为友好的选取文本范围,以高亮显示;在屏幕的最下方显示有;
-- 可视 --

--VISUAL--
如图:
FreeBSD文件编辑器vi常用命令
进入可视模式,我们就可以用前面所说的命令行模式中的光标移动指令,可以进行文本范围的选取。
选取文本范围有何用?
我们可以对某部份删除作业,按d键就删除了我们选中的内容。
选中内容后,我们按y就表示复制;按d表示删除;
值得一提是的删除的同时,也表示复制。我们返回到命令模式,然后移动光标到某个位置,然后按shift+p键,就把刚才删除的内容贴上了。我们先在这里提一句,在后文,我们还得详细说说。
退出可视模式,还是用ESC键;

3.9 复制和粘帖的操作;

其实删除也带有剪切的意思,当我们删除文字时,可以把光标移动到某处,然后按shift+p键就把内容贴在原处,然后再移动光标到某处,然后再按p或shift+p又能贴上;
p 在光标之后粘帖;
shift+p 在光标之前粘帖
来举一例:
比如我们想把一个文档的第三行复制下来,然后帖到第五行的后面,我们应该怎么做呢?
有两种方法;
第一种方法:
先把第三行删除,把光标移动到第三行处,然后用dd动作,接着再按一下shift+p键。这样就把刚才删除的第三行帖在原处了。
接着我们再用k键移动光标到第五行,然后再按一下p键,这样就把第三行的内容又帖到第五行的后面了;
第二种方法;
进入可视模式,按ESC键,然后按v键。移动鼠标指针,选中第三行的内容,然后按y键复制;再移动指针到第五行,最后按p键;
所以复制和粘贴操作,是命令模式、插入模式及可视模式的综合运用;我们要学会各种模式之间的切换,要常用ESC键;更为重要的学会在命令模式下移动光标;

3.10 关于行号;

有时我们配置一个程序运行时,会出现配置文件X行出现错误 。这时我们要用到行号相关的操作;

为所有内容添加行号;

按ESC键,然后输入:
:set number
光标所处位置
在屏幕的右下角,有类似如下的;
     57,8      27%
在这之中,57表示第57行,8表示第8个字符;

3.11 查找和替换功能;


3.11.1 查找;

首先,我们要进入ESC键,进入命令模式;我们输入/或?就进入查找模式了;
/SEARCH 注:正向查找,按n键把光标移动到下一个符合条件的地方;
?SEARCH 注:反向查找,按shift+n 键,把光标移动到下一个符合条件的
举一例: 比如我想在一个文件中找到swap单词,我应该如下做;
首先按ESC键,进入命令模式,然后输入;
/swap

?swap

3.11.2 替换;

按ESC键进入命令模式;
:s /SEARCH/REPLACE/g 注:把当前光标所处的行中的SEARCH单词,替换成REPLACE,并把所有SEARCH高亮显示;
:%s /SEARCH/REPLACE 注:把文档中所有SEARCH替换成REPLACE;
:#,# s /SEARCH/REPLACE/g 注:#号表示数字,表示从多少行到多少行,把SEARCH替换成REPLACE;
注:在这之中,g表示全局查找;我们注意到,就是没有替换的地方,也会把SEARCH高亮显示;
举例说明:
比如我们有一篇文档要修改;
我们把光标所在的行,把所有单词the,替换成THE,应该是:
:s /the/THE/g
我们把整篇文档的所有的the都替换成THE,应该是:
:%s /the/THE
我们仅仅是把第1行到第10行中的the,替换成THE,应该是;
:1,10 s /the/THE/g

4、关于本文;

我写本文的目的是让新手在最短的时间内用vi或vim创建、编辑和修改文件,所以说这篇文档并不是大而全的vi手册。如果把vi所有的功能都说全了,至少得写一本千页的手册;本也没有涉及更为高级的vi用法。如果想了解的更多,请查找man和help;

5、后记;

到目前为止,关于目录和文件的操作,我写过有几篇了,从文件和目录的创建、删除、复制到属性操作,最后到文件修改等系列文档。这些文档都是有相关性的,如果把这些相关性的文档连起来,就是一个整体知识块。我们只有掌握了这些知识,才能实现文件系统的管理。
在以后我会写什么内容呢????可能会补充一下文件的查找,其实以前有类似文档,到时我总结一下,贴出来给大家看看就行了。
下一步是准备网络基础文档建设中,网络基础比较重要,这是我计划的下一个重点。。。。。。。。

6、参考文档;

man vi 和vi --help


楼主->      发表于 07-12-28 11:35     

vi命令大全

移动光标
h   将光标左移一格。
l   将光标右移一格。
k或Ctrl+p   光标上移一行
j或Ctrl+n    光标下移一行
w   将光标移到下一个小字的前面。
W   将光标移到下一个大字的前面。
b   将光标移到前一个小字的前面。
B   将光标移到前一个大字的前面。
e   将光标移到下一个小字的后面。
E   将光标移到前一个大字的后面。
fc   把光标移到同一行的下一个c字符处。
Fc   把光标移到同一行的前一个c字符处。
tc   把光标移到同一行的下一个字符c的前一格。
Tc   把光标移到同一行的前一个字符c的后一格。
number|   把光标移到递number列上。
+或Enter   把光标移至下一行第一个非空白字符。
-   把光标移至上一行第一个非空白字符。
)   光标移至句尾
(   光标移至句首
}   光标移至段落开头
{   光标移至段落结尾
nG   光标移至第n行首
n+   光标下移n行
n-   光标上移n行
n$   光标移至第n行尾
H   把光标移到屏幕最顶端一行。
M   光标移至屏幕中间行
L   光标移至屏幕最后行
0   (注意是数字零)光标移至当前行首
$   光标移至当前行尾
space   字符光标右移一个字符
==========================================================
屏幕翻滚
Ctrl + f   向后滚一页。
Ctrl + d    向后滚半页。
Ctrl + b   向前滚一页。
Ctrl + u   向前滚半页。
Ctrl + e   屏幕向下滚一行。
Ctrl + y   屏幕项上滚一行。
nz   将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
===============================================================
插入文本
i    在光标前
I    在当前行首
a   光标后
A   在当前行尾
o   在当前行之下新开一行
O   在当前行之上新开一行
r   字符替换当前字符
R   字符及其后的字符,直至按ESC键替换当前字符及其后的字符,直至按ESC键
s   字符从当前光标位置处开始,以输入的文本替代指定数目的字符
S   删除指定数目的行,并以所输入文本代替之
ncw或nCW   修改指定数目的字
nCC   修改指定数目的行
==============================================================
修改
ndw或ndW   删除光标处开始及其后的n-1个字
do   删至行首
d$   删至行尾
ndd   删除当前行及其后n-1行
x或X   字符,x删除光标后的,而X删除光标前的删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u   删除输入方式下所输入的文本
cc或S   修改一整行。
C   改变一行光标位置以后的部分。
cw   改变光标所在单词。
dd   删除当前行。
D   删除光标所在行光标后面的内容。
dw   删除光标所在的单词。
J   把下一行内容加到本行行尾。
rc   字符替换成c .把光符所在字符替换成c .
R   覆盖本行内容。
u   恢复上一次的修改。
~   字符的大小写。改变光标所在出字符的大小写。
.   重复上一个操作。
<<   把当前行移到左边。
>>   把当前行移到右边。
===========================================================
搜索/替换
/pattern   文件尾搜索pattern从光标开始处向文件尾搜索pattern
?pattern   文件首搜索pattern从光标开始处向文件首搜索pattern
n   在同一方向重复上一次搜索命令
N   在反方向上重复上一次搜索命令
s/p1/p2/g   将当前行中所有p1均用p2替代
n1,n2s/p1/p2/g   将第n1至n2行中所有p1均用p2替代
g/p1/s//p2/g   文件中所有p1均用p2替换将文件中所有p1均用p2替换
/pattern/+number   将光标停在包含pattern的行后面第number行上。
/pattern/-number   将光标停在包含pattern的行前面第number行上。
%   移到匹配的“()”或“{}”上。
==========================================================
改变屏幕显示
z-   把当前行作为屏幕的最后一行,并重新显示屏幕。
z.   把当前行作为屏幕的中间一行,并重新显示屏幕。
Ctrl+l    重新显示屏幕当前内容。
/pattern/z-    寻找pattern的下一个位置,并把所在行设为屏幕的最后一行。
=========================================================
拷贝文本
p   将缓冲区内容取到光标所在行的下面一行。
P   将缓冲区内容取到光标所在行的上面一行。
“bd   将文本删除至有名缓冲区b .
“bp   张贴有名缓冲区b中内容。
yy   把当前行放入缓冲区。
Y   把当前行放入缓冲区。
Yw   把光标所在的单词放入缓冲区
=========================================================
选项设置
all   列出所有选项设置情况
term   设置终端类型
ignorance   在搜索中忽略大小写
list   显示制表位(Ctrl+I)和行尾标志($)
number   显示行号
report   显示由面向行的命令修改过的数目
terse   显示简短的警告信息
warn   文件时若没保存当前文件则显示NO write信息在转到别的文件时若没保存当前文件则显示NO write信息
nomagic   字符允许在搜索模式中,使用前面不带“\”的特殊字符
nowrapscan   文件两端时,又从另一端开始禁止vi在搜索到达文件两端时,又从另一端开始
mesg   允许vi显示其他用户用write写到自己终端上的信息
============================================================
n1,n2 co n3   将n1行到n2行之间的内容拷贝到第n3行下
n1,n2 m n3   将n1行到n2行之间的内容移至到第n3行下
n1,n2 d    将n1行到n2行之间的内容删除
:w 保存;
:w filename 另存为filename;
:wq! 保存退出;
:wq! filename 注:以filename为文件名保存后退出;
:q! 不保存退出;
:x 应该是保存并退出 ,功能和:wq!相同
========================================================================
多文件切换
n   文件列表中的下一个文件。开始编辑vi激活的文件列表中的下一个文件。
n filenames   文件列表。指定将被编辑的新的文件列表。
============================================================================
文件间切换
e filename   文件filename)。使用filename激活vi (在vi中装入另一个文件filename)。
e!   文件,若当前文件有改动,则丢弃以前的改动。重新装入当前文件,若当前文件有改动,则丢弃以前的改动。
e+filename   文件尾部开始编辑。使用filename激活vi ,并从文件尾部开始编辑。
e+number filename   使用filename激活vi ,并在第number行开始编辑。
e#   文件。开始编辑另外一个文件。
==============================================================================
加入其他文件
r filename   文件,并将其内容加到当前文件后。读取filename文件,并将其内容加到当前文件后。
r ! Command   文件,并将其输出加到当前文件后。执行command文件,并将其输出加到当前文件后。
n1,n2 w!command   文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入将文件中n1行至n2
行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入
===========================================================================
其他命令
ctrl+g   文件的有关信息。取得正在编辑文件的有关信息。
:sh   启动sh ,从sh中返回可用exit或ctrl+d .
:! Command   执行命令command .
!!   重新执行上次的:! Command子命令。
q   退出vi
q!   文件并退出vi不保存文件并退出vi
ZZ或:wq   文件的修改并退出vi .保存对文件的修改并退出vi .
===================================================================
寄存器操作
"?nyy   将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
"?nyw   将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字
"?nyl   字符保存到寄存器?中,其中?为一个字母,n为一个数字将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
"?p   取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字
ndd   将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。
==================================================================
vi filename   文件,并将光标置于第一行首打开或新建文件,并将光标置于第一行首
    vi +n filename   文件,并将光标置于第n行首打开文件,并将光标置于第n行首
    vi + filename   文件,并将光标置于最后一行首打开文件,并将光标置于最后一行首
    vi +/pattern filename   文件,并将光标置于第一个与pattern匹配的串处打开文件,并将光标置于第一个与pattern匹配的串处
    vi -r filename   系统崩溃,恢复filename在上次正用vi编辑时发生系统崩溃,恢复filename
    vi filename....filename   文件,依次进行编辑打开多个文件,依次进行编辑
    vi -c sub-command   文件编辑前,先执行指定的命令 sub-command .在对指定的文件编辑前,先执行指定的命令 sub-command .
    vi -R   文件以只读的方式放入编辑器中,这样不会保存对文件的任何修 改。将指定的文件以只读的方式放入编辑器中,这样不会保存对文件的任何修
改。
    vi -y number   将编辑窗口的大小设为number行。
分享到:
评论

相关推荐

    Wim编辑器精通之路

     Vim是一个类似于Vi的文本编辑器, 不过在Vi的基础上增加了很多新的特性, Vim普遍被推崇为类Vi编辑器中最好的一个, 事实上真正的劲敌来自Emacs的不同变体. 1999 年Emacs被选为Linuxworld文本编辑分类的优胜者, Vim...

    FreeBSD 8.1使用手册

    同时,手册还会讲述如何使用控制台、编辑器(如vi)以及配置文件管理,以便对系统进行日常维护。 三、网络与服务配置 FreeBSD 8.1支持多种网络协议和服务,如TCP/IP、DHCP、DNS、NFS、SMB等。手册会详细阐述如何...

    freebsd的入门配置和命令

    例如,要安装 Vim 编辑器,你可以按照以下步骤操作: 1. 找到 Vim 的 Ports 目录:`whereis vim` 2. 进入 Vim 的 Ports 目录:`cd /usr/ports/editors/vim` 3. 构建软件:`make` 4. 安装软件:`make install` 5. ...

    freebsd.rar_freebsd

    例如,“man”命令用于查看命令的帮助文档,“ps”用于查看进程状态,“df”显示磁盘空间使用情况,“vi/vim”是常用的文本编辑器,“pkg”管理软件包的安装、更新和删除。掌握这些基础命令是高效使用FreeBSD的基础...

    FreeBSD邮件服务器安装

    编辑Amavis-new的配置文件,设置与Postfix的接口、ClamAV病毒扫描器的路径等。 ### 五、总结 本篇文档详细介绍了如何在FreeBSD 4.10系统上搭建一套完整的邮件服务器,包括核心组件Postfix、vm-pop3d、OpenWebMail...

    FreeBSD Linux 使用大全

    Linux的命令行同样强大,许多基本命令在所有发行版中都是通用的,如`ls`列出目录内容,`cd`改变目录,`apt`或`yum`用于软件包管理,以及`vi`或`nano`作为文本编辑器。 在"FreeBSD使用大全"中,你可能会学到如何安装...

    FreeBSD10.0下ports安装postgresql9.4-server

    可以通过vi编辑器打开配置文件,并找到以post开头的行(通常为port=5432),去掉该行前面的注释符号(#),以允许远程连接。此外,还需要确保防火墙规则允许外部访问5432端口,这是PostgreSQL服务默认监听的端口。 ...

    freebsd学习资料

    例如,`ps`用于查看进程状态,`vi/vim`是文本编辑器,`man`用来查阅命令手册,`pkg`管理软件包,`ifconfig`则用于配置网络接口。了解并熟练运用这些命令,可以提高工作效率,更好地管理系统。 "FreeBSD技术内幕.pdf...

    Vim初步介绍

    Vim(Vi Improved)是一款高度可配置、免费且开源的文本编辑器,它最初由布拉德·丘斯克(Bram Moolenaar)基于经典的vi编辑器开发而来。自1991年发布以来,Vim因其强大的功能、高度的灵活性以及高效的键盘操作而受...

    西北工业大学-操作系统实验报告-实验三.doc

    本实验报告的主要内容是学习在 FreeBSD 下使用 vi 编辑器编写 C 语言程序,使用 gcc 编译,并运行。下面是实验的详细内容和步骤: 一、实验目的 学习在 FreeBSD 下使用 vi 编辑器编写 C 语言程序,使用 gcc 编译,...

    FreeBSD使用手册

    - **基础命令**:手册涵盖了常用的FreeBSD命令,如文件管理(`ls`, `cd`, `mkdir`等)、文本编辑器(如`vi`)、包管理系统(`pkg`工具)等。 - **系统配置**:介绍了如何配置系统设置,包括设置主机名、网络配置、...

    cpp-ttetinytexteditor一个采用C编写基于终端的文本编辑器

    4. **快捷键支持**:tte可能会采用常见的编辑器快捷键组合,如Vi或Emacs风格,以提高编辑效率。 5. **颜色和高亮**:tte可能支持语法高亮,使代码更易读,尽管由于其“tiny”特性,高亮功能可能相对简单。 6. **...

    freebsd-bin:freebsd主目录目录

    这些文件包括各种shell(如Bourne-Again SHell, bash,或是C Shell, csh),文本编辑器(如vi或nano),文件处理工具(如cp、mv、rm),打包和压缩工具(tar、gzip、bzip2),以及网络和系统管理命令(如ping、...

    FreeBSD13-zsh.ova.rar

    6. **扩展插件**:通过Oh My ZSH这样的框架,用户可以安装各种插件,如git工具、vi编辑器模式等,进一步增强ZSH的功能。 **使用ZSH在FreeBSD 13上的实践** 安装完ZSH后,用户可能想要配置一个适合自己的环境。这...

    FreeBSD 下的UNIX系统入门

    - `ee`和`vi`是常见的文本编辑器。`ee`更适合新手,而`vi`功能强大但需要学习。 8. **Shell环境设定**: - 用户可以自定义Shell环境,如通过`.bashrc`文件设置别名、环境变量等。 9. **使用者与群组权限**: - ...

    广东工业大学 unix网络操作系统实训实验报告

    实验报告主要涵盖了Unix操作系统的入门知识,包括历史、主要版本、shell的使用以及vi编辑器的掌握。以下是对这些内容的详细阐述: 1. **UNIX操作系统历史**: UNIX操作系统起源于1960年代末的贝尔实验室,由肯·汤...

    FreeBSD 下的 MySQL 备份方案.txt

    - `#vi /etc/crontab`:编辑Cron配置文件。 - `0 2 * * * root /usr/home/user/dbbak/dbbak.sh`:设置每天凌晨2点执行备份脚本。这里的格式为“分钟 小时 日 月 星期”,其中`0 2 * * *`表示每天凌晨2点。 #### ...

    vim-unix系统

    Vim(Vi IMproved)是一款强大的文本编辑器,尤其在Unix和类Unix系统中广泛使用。这个压缩包包含了两个版本的Vim,分别是7.3和7.4,这些都是从官方源获取的,确保了软件的可靠性和安全性。Vim在Unix系统上的应用体现...

    bim:具有语法突出显示功能的小型终端文本编辑器

    Bim-文字编辑器 Bim是具有语法突出显示功能的终端文本编辑器。 Bim受到Vim的启发(可能会说是模仿错误),并具有类似的基于模式的编辑功能,最初是为ToaruOS编写的,但也已在Linux,Sortex,FreeBSD和macOS上进行...

Global site tag (gtag.js) - Google Analytics