linux的vi命令不能保存中文

合集下载

Linux下的vi编辑器的简单使用操作方法

Linux下的vi编辑器的简单使用操作方法

Linux下的vi编辑器的简单使⽤操作⽅法vi编辑器的使⽤:vi编辑器有三种基本⼯作模式,分别是命令⾏模式、⽂本输⼊模式、末⾏模式。

1.命令⾏模式该模式是进⼊vi编辑器后的默认模式,任何时候,不管⽤户处于何种模式,按下esc键即可进⼊命令⾏模式。

在命令⾏模式下,可以输⼊vi命令来管理⾃⼰的⽂档。

此时在键盘上输⼊任何字符都被当作编辑命令,⽽不是输⼊字符。

输⼊的字符并不会在屏幕上显⽰,若是合法的vi命令,则会完成相应的动作,否则会响铃报警。

2.⽂本输⼊模式命令⾏模式下输⼊以下⼏个命令则会进⼊⽂本输⼊模式。

i: 插⼊命令,会将⽂本插⼊到光标所在位置之前I: 插⼊命令,会将⽂本插⼊到光标所在⾏的⾏⾸a: 追加⽂本命令,会将⽂本追加到光标当前位置之后A: 追加⽂本命令,会将⽂本追加到光标所在⾏的末尾o: 空⾏插⼊命令,将在光标所在⾏的下⾯插⼊⼀个空⾏,并将光标置于该⾏的⾏⾸O: 空⾏插⼊命令,将在光标所在⾏的上⾯插⼊⼀个空⾏,并将光标置于该⾏的⾏⾸c: 修改命令r: 取代命令s: 替换命令在该模式下,⽤户输⼊的任何字符都被当做⽂件内容保存起来,并显⽰在屏幕上。

3.末⾏模式命令⾏模式下,⽤户按下:键即可进⼊末⾏模式,此时vi会在显⽰窗⼝的最后⼀⾏显⽰⼀个:作为末⾏模式的说明符,等待⽤户输⼊命令。

多数⽂件管理命令都是在此模式下执⾏的。

末⾏命令执⾏完后,vi会⾃动回到命令⾏模式4.vi⽂本的删除命令:vi编辑器可以在编辑模式和命令⾏模式下删除⽂本。

命令⾏模式下,vi常⽤删除命令x 删除光标处的字符。

若在x之前加上⼀个数字n,则删除从光标所在位置开始向右的n个字符。

X 删除光标前⾯的字符。

若在X之前加上⼀个数字n,则删除从光标前⾯那个字符开始向左的n个字符。

dd 删除光标所在的整⾏。

前⾯加上数字n,则删除当前⾏以及其后的n-1⾏。

D 或 d$ 删除从光标所在处开始到⾏尾的内容。

d( 删除到上⼀句开始的所有字符d) 删除到下⼀句开始的所有字符d{ 删除到上⼀段开始的所有字符d} 删除到下⼀段开始的所有字符d0 删除从光标前⼀个字符开始到⾏⾸的内容dw 删除⼀个单词。

Linux系统中vi命令的详细解释

Linux系统中vi命令的详细解释

Linux系统中vi命令的详细解释在Linux系统中,vi编辑器是个功能强大的富文本编辑器,那么下面由店铺为大家整理了linux系统中vi命令的详细解释的相关知识,希望对大家有帮助!Linux系统中vi命令的详细解释vi命令vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。

Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。

vi编辑器支持编辑模式和命令模式,编辑模式下可以完成文本的编辑功能,命令模式下可以完成对文件的操作命令,要正确使用vi编辑器就必须熟练掌握着两种模式的切换。

默认情况下,打开vi编辑器后自动进入命令模式。

从编辑模式切换到命令模式使用“esc”键,从命令模式切换到编辑模式使用“A”、“a”、“O”、“o”、“I”、“i”键。

vi编辑器提供了丰富的内置命令,有些内置命令使用键盘组合键即可完成,有些内置命令则需要以冒号“:”开头输入。

常用内置命令如下:Ctrl+u:向文件首翻半屏;Ctrl+d:向文件尾翻半屏;Ctrl+f:向文件尾翻一屏;Ctrl+b:向文件首翻一屏;Esc:从编辑模式切换到命令模式;ZZ:命令模式下保存当前文件所做的修改后退出vi;:行号:光标跳转到指定行的行首;:$:光标跳转到最后一行的行首;x或X:删除一个字符,x删除光标后的,而X删除光标前的;D:删除从当前光标到光标所在行尾的全部字符;dd:删除光标行正行内容;ndd:删除当前行及其后n-1行;nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字;p:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方;P:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方;/字符串:文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示;name:文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示;a,bs/F/T:替换文本操作,用于在第a行到第b行之间,将F字符串换成T字符串。

vi使用方法详细介绍

vi使用方法详细介绍

vi使用方法详细介绍vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。

由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。

Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。

1、vi的基本概念基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:1) 命令行模式command mode)控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到last line mode。

2) 插入模式(Insert mode)只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。

3) 底行模式(last line mode)将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。

不过一般我们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式command mode)。

2、vi的基本操作a) 进入vi在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面:$ vi myfile不过有一点要特别注意,就是您进入vi之后,是处于「命令行模式(command mode)」,您要切换到「插入模式(Insert mode)」才能够输入文字。

初次使用vi的人都会想先用上下左右键移动光标,结果电脑一直哔哔叫,把自己气个半死,所以进入vi后,先不要乱动,转换到「插入模式(Insert mode)」再说吧!b) 切换至插入模式(Insert mode)编辑文件在「命令行模式(command mode)」下按一下字母「i」就可以进入「插入模式(Insert mode)」,这时候你就可以开始输入文字了。

linux文件编辑vi的常见操作命令

linux文件编辑vi的常见操作命令

linux文件编辑vi的常见操作命令vi是一款常用的文本编辑器,在Linux系统中被广泛使用。

下面将介绍vi的常见操作命令,帮助初学者快速掌握vi的基本使用。

1. 打开文件:使用vi命令加上要编辑的文件名,例如`vi filename`。

如果文件不存在,则会创建一个新文件。

2. 保存文件:在正常模式下,按下`:w`命令可以将文件保存。

如果文件是新创建的,需要指定文件名,例如`:w newfilename`。

3. 退出vi:在正常模式下,输入命令`:q`可以退出vi。

如果文件有未保存的修改,vi会提示保存或放弃修改。

如果想强制退出vi,可以使用命令`:q!`。

4. 插入文本:在正常模式下,按下`i`命令可以进入插入模式,在光标位置前插入文本。

按下`a`命令可以在光标位置后插入文本。

按下`o`命令可以在下一行插入新行并进入插入模式。

5. 删除文本:在正常模式下,按下`x`命令可以删除光标所在位置的字符。

按下`dd`命令可以删除整行。

按下`dw`命令可以删除一个词。

按下`d$`命令可以删除光标位置到行尾的内容。

6. 复制和粘贴文本:在正常模式下,按下`yy`命令可以复制整行。

按下`yw`命令可以复制一个词。

按下`p`命令可以粘贴复制的内容。

7. 撤销和重做:在正常模式下,按下`u`命令可以撤销上一步操作。

按下`Ctrl + r`命令可以重做被撤销的操作。

8. 查找和替换:在正常模式下,按下`/text`命令可以向下查找匹配的文本。

按下`?text`命令可以向上查找匹配的文本。

按下`:%s/old/new/g`命令可以替换全文中的old为new。

9. 移动光标:在正常模式下,按下`h`命令可以将光标向左移动一个字符。

按下`j`命令可以将光标向下移动一行。

按下`k`命令可以将光标向上移动一行。

按下`l`命令可以将光标向右移动一个字符。

按下`gg`命令可以将光标移动到文件开头。

按下`G`命令可以将光标移动到文件末尾。

linux中显示中文乱码的问题

linux中显示中文乱码的问题

linux中显示中文乱码的问题/seuxiaoqi/article/details/5577195分类:linux 2010-05-11 09:154586人阅读评论(0)收藏举报由于在windows下默认是gb编码,而我的vim默认是utf-8(gedit默认也是utf-8),所以打开会成乱码。

修改了一下配置文件,使vi支持gb编码就好了。

$vi ~/.vimrclet &termencoding=&encodingset fileencodings=utf-8,gbk$:wq再次打开vi,显示就正常了。

如果你需要在linux下面用到windows下的文件,拷贝上去后经常发现中文显示乱码。

原因是Windows中默认的文件格式是 GBK(gb2312),而Linux一般都是UTF-8。

比较繁琐的方法是在windows下用程序把内容转换为utf-8编码格式的,但是相当麻烦,而且遇到一个文件转一回。

下面介绍一下,在Linux中如何一劳永逸的解决这个问题,查看文件的编码及如何进行对文件进行编码转换。

查看文件编码在Linux中查看文件编码可以通过以下几种方式:1.在Vim中可以直接查看文件编码:set fileencoding即可显示文件编码格式。

文件编码转换1.如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在~/.vimrc(在/etc目录下面)文件中添加以下内容:set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936其中encoding是vim的默认显示编码格式,fileencodings是vim打开文件时检测的编码格式,存在这种类型的编码即转换为utf-8 编码。

这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开。

linux下vi编辑只读文档无法保存是什么原因

linux下vi编辑只读文档无法保存是什么原因

linux下vi编辑只读文档无法保存是什么原因Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

不过有用户遇到linux下vi编辑只读文档无法保存问题,怎么回事呢?下面这篇文章主要介绍了linux下vi编辑只读文档无法保存的解决方法,需要的朋友可以参考下。

方法步骤使用普通用户编辑nginx.conf 等配置文件:保存的时候会提示:没有Root Permission可以用如下方法解决:保存时加上::w !sudo tee %我这里有一个问题。

没有配置sudo权限。

用sudo时提示"xxx is not in the sudoers file. This incident will be reported.其中XXX是你的用户名,也就是你的用户名没有权限使用sudo,我们只要修改一下/etc/sudoers文件就行了。

下面是修改方法:1)进入超级用户模式。

也就是输入"su -",系统会让你输入超级用户密码,输入密码后就进入了超级用户模式。

(当然,你也可以直接用root用)2)添加文件的写权限。

也就是输入命令"chmod u+w /etc/sudoers"。

3)编辑/etc/sudoers文件。

也就是输入命令"vim /etc/sudoers",输入"i"进入编辑模式,找到这一行:"root ALL=(ALL) ALL"在起下面添加"xxx ALL=(ALL) ALL"(这里的xxx是你的用户名),然后保存(就是先按一下Esc键,然后输入":wq")退出。

4)撤销文件的写权限。

也就是输入命令"chmod u-w /etc/sudoers"。

再次保存:查看是否成功:$ grep sudo nginx.conf#test :w !sudo tee %解释::w : Write a file.可以将文件写入,文件仍然是只读模式,通过 :q! 退出!sudo : Call shell sudo command.tee : The output of the vi/vim write command is redirected using tee.% : Triggers the use of the current filename.Simply put, the ‘tee’ command is run as sudo and follows the vi/vim command on the current filename given.补充:在网上看了很多解答,大多是一句话::w !sudo tee %;或者是:你有权限修改文件吗?如果是root权限,可以:wq!实际上我想说的就是一句话:在打开文件时加上sudo。

Vi命令详解

Vi命令详解

vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。

由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。

Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。

1、vi的基本概念基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:1) 命令行模式(command mode)控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insertmode下,或者到last line mode。

2) 插入模式(Insert mode)只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。

3) 底行模式(last line mode)将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。

不过一般我们在使用时把vi简化成两个模式,就是将底行模式(last linemode)也算入命令行模式command mode)。

2、vi的基本操作a) 进入vi在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面:$ vi myfile不过有一点要特别注意,就是您进入vi之后,是处于「命令行模式(command mode)」,您要切换到「插入模式(Insert mode)」才能够输入文字。

初次使用vi的人都会想先用上下左右键移动光标,结果电脑一直哔哔叫,把自己气个半死,所以进入vi后,先不要乱动,转换到「插入模式(Insert mode)」再说吧!b) 切换至插入模式(Insert mode)编辑文件在「命令行模式(command mode)」下按一下字母「i」就可以进入「插入模式(Insert mode)」,这时候你就可以开始输入文字了。

linux下vi命令修改文件及保存方法是什么

linux下vi命令修改文件及保存方法是什么

linux下vi命令修改文件及保存方法是什么vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件。

十分方便,不过很多用户还是不会使用,下面一起看看vi的概念和用法详解。

vi的基本概念基本上vi可分为三种操作状态,分别是命令模式(Command mode)、插入模式(Insert mode)和底线命令模式(Last line mode),各模式的功能区分如下:1. Comand mode:控制屏幕光标的移动,字符或光标的删除,移动复制某区段及进入Insert mode下,或者到Last line mode。

2. Insert mode:唯有在Insert mode下,才可做文字数据输入,按Esc等可回到Comand mode。

3. Last line mode:将储存文件或离开编辑器,也可设置编辑环境,如寻找字符串、列出行号等。

不过可以把vi简化成两个模式,即是将Last line mode也算入Command mode,把vi分成Command 和Insert mode。

进入vi的命令vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi + filename :打开文件,并将光标置于最后一行首vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filenamevi filename....filename :打开多个文件,依次进行编辑移动光标类命令h :光标左移一个字符l :光标右移一个字符space:光标右移一个字符Backspace:光标左移一个字符k或Ctrl+p:光标上移一行j或Ctrl+n :光标下移一行Enter :光标下移一行w或W :光标右移一个字至字首b或B :光标左移一个字至字首e或E :光标右移一个字至字尾) :光标移至句尾( :光标移至句首}:光标移至段落开头{:光标移至段落结尾nG:光标移至第n行首n+:光标下移n行n-:光标上移n行n$:光标移至第n行尾H :光标移至屏幕顶行M :光标移至屏幕中间行L :光标移至屏幕最后行0:(注意是数字零)光标移至当前行首$:光标移至当前行尾屏幕翻滚类命令Ctrl+u:向文件首翻半屏Ctrl+d:向文件尾翻半屏Ctrl+f:向文件尾翻一屏Ctrl+b;向文件首翻一屏nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

Linux 中 V(Vim)常用命令使用说明

Linux 中 V(Vim)常用命令使用说明

Linux 中V(Vim)常用命令使用说明在linux发行版中vi 命令已经软链接到了vim一、vi的三种工作模式:命令模式、末行模式、编辑模式1. 末行模式命令w:(write)保存q:(quit)退出,如果没有保存不允许退出q!:(quit)强行退出,不保存退出wq:(write&quit)保存并退出x:保存并退出:e:(edit)会打开内置浏览器浏览当前目录下的文件,后面加文件名就会打开该文件:n文件名:(new)新建文件:w文件名:(write)另存为,但是仍然编辑当前文件,并不会切换文件二、打开或新建文件说明:打开一个文件,文件不存在则新建一个文件命令:vi 文件名1. 打开文件并且定位行说明:打开一个文件并且定位到指定行数,不指定行数则定位到文件末尾命令:vi 文件名+行数三、常用命令(命令模式下使用)1. 重复次数在命令模式下,先输入一个数字再跟上一个命令,可以让该命令重复执行指定次数。

2. 移动和选择2.1 移动行间移动命令:行内移动命令:行数移动命令:屏幕移动命令:段落移动命令:vi中用空行来区分段落,在程序开发过程中,通常一段功能相关的代码会放到一起(一个段落)。

括号切换命令:标记命令:2.2 选择(可视模式)可视模式下,esc可退出可视模式,还可和移动命令连用,例如ggVG能够选中所有内容。

3. 编辑操作3.1撤销和恢复撤销3.2 删除文本如果使用可视模式已经选中了一段字符,那么使用d或者x都可以删除选中字符。

删除命令可以和移动命令连用,例如3.3 复制粘贴复制粘贴是在一个文本缓冲区,没有使用系统的剪切板,所有用其他软件ctrl + c/x 复制剪切到系统的剪切板,再到vi中p粘贴是不能粘贴系统剪切板的内容的。

如果想将系统剪切板的内容粘贴到vi中,需要进入编辑模式使用ctrl + v才能将内容粘贴。

vi中的删除操作本质上就是剪切,只是没有使用p粘贴。

4. 撤销和重复4.1 缩排和重复5. 查找和替换5.1替换R命令可进入替换模式,替换完后esc退出替换模式进入命令模式替换命令的作用就是在不用进入编辑模式,对文本进行轻量级修改。

Linux中vi编辑器的基本使用方法

Linux中vi编辑器的基本使用方法

Vi编辑器的基本使用方法!1、vi的基本概念区段及进入Insert mode下,或者到last line mode。

2)插入模式(Insert mode)只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。

3)底行模式(last line mode)2、vi的基本操作a)进入vi在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面:$ vi myfilec) Insert 的切换d)退出vi及保存文件」冒号键进入「Last line mode」,例如::w filename (输入「w filename」将文章以指定的文件名filename保存): wq (输入「wq」,存盘并退出vi): q! (输入q!,不存盘强制退出vi)1).插入模式按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

2).从插入模式切换为命令行模式按「ESC」键。

3).移动光标vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格。

按「ctrl」+「b」:屏幕往“后”移动一页。

按「ctrl」+「f」:屏幕往“前”移动一页。

按「ctrl」+「u」:屏幕往“后”移动半页。

按「ctrl」+「d」:屏幕往“前”移动半页。

按数字「0」:移到文章的开头。

按「G」:移动到文章的最后。

按「$」:移动到光标所在行的“行尾”。

按「^」:移动到光标所在行的“行首”按「w」:光标跳到下个字的开头按「e」:光标跳到下个字的字尾按「b」:光标回到上个字的开头按「#l」:光标移到该行的第#个位置,如:5l,56l。

4).删除文字「x」:每按一次,删除光标所在位置的“后面”一个字符。

Linux中文乱码问题

Linux中文乱码问题

1、linux ssh连接乱码问题原文件内容为:LANG="zh_CN.UTF-8"SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"SYSFONT="latarcyrheb-sun16"有的系统只有:LANG="zh_CN.UTF-8"更改为:LANG="zh_CN.UTF-8"LANG="zh_CN.GB18030"LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"SYSFONT="latarcyrheb-sun16"Linux中文乱码问题最近,公司在XP系统于LINUX之间传数据时出现了中文乱码问题!首先,解释一下字符集:汉字编码:* GB2312字集是简体字集,全称为GB2312(80)字集,共包括国标简体汉字6763个。

* BIG5字集是台湾繁体字集,共包括国标繁体汉字13053个。

* GBK字集是简繁字集,包括了GB字集、BIG5字集和一些符号,共包括21003个字符。

* GB18030是国家制定的一个强制性大字集标准,全称为GB18030-2000,它的推出使汉字集有了一个“大一统”的标准。

ASCII:American Standard Code for Information Interchange,美国信息交换标准码。

目前计算机中用得最广泛的字符集及其编码,由美国国家标准局(ANSI)制定。

它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。

ASCII字符集由控制字符和图形字符组成。

linux下vi命令大全

linux下vi命令大全

linux下vi命令⼤全进⼊vi的命令vi filename :打开或新建⽂件,并将光标置于第⼀⾏⾸vi +n filename :打开⽂件,并将光标置于第n⾏⾸vi + filename :打开⽂件,并将光标置于最后⼀⾏⾸vi +/pattern filename:打开⽂件,并将光标置于第⼀个与pattern匹配的串处vi -r filename :在上次正⽤vi编辑时发⽣系统崩溃,恢复filenamevi filename....filename :打开多个⽂件,依次进⾏编辑移动光标类命令h :光标左移⼀个字符l :光标右移⼀个字符space:光标右移⼀个字符Backspace:光标左移⼀个字符k或Ctrl+p:光标上移⼀⾏j或Ctrl+n :光标下移⼀⾏Enter :光标下移⼀⾏w或W :光标右移⼀个字⾄字⾸b或B :光标左移⼀个字⾄字⾸e或E :光标右移⼀个字⾄字尾) :光标移⾄句尾( :光标移⾄句⾸}:光标移⾄段落开头{:光标移⾄段落结尾nG:光标移⾄第n⾏⾸n+:光标下移n⾏n-:光标上移n⾏n$:光标移⾄第n⾏尾H :光标移⾄屏幕顶⾏M :光标移⾄屏幕中间⾏L :光标移⾄屏幕最后⾏0:(注意是数字零)光标移⾄当前⾏⾸$:光标移⾄当前⾏尾屏幕翻滚类命令Ctrl+u:向⽂件⾸翻半屏Ctrl+d:向⽂件尾翻半屏Ctrl+f:向⽂件尾翻⼀屏Ctrl+b;向⽂件⾸翻⼀屏nz:将第n⾏滚⾄屏幕顶部,不指定n时将当前⾏滚⾄屏幕顶部。

插⼊⽂本类命令i :在光标前I :在当前⾏⾸a:光标后A:在当前⾏尾o:在当前⾏之下新开⼀⾏O:在当前⾏之上新开⼀⾏r:替换当前字符R:替换当前字符及其后的字符,直⾄按ESC键s:从当前光标位置处开始,以输⼊的⽂本替代指定数⽬的字符S:删除指定数⽬的⾏,并以所输⼊⽂本代替之ncw或nCW:修改指定数⽬的字nCC:修改指定数⽬的⾏删除命令ndw或ndW:删除光标处开始及其后的n-1个字do:删⾄⾏⾸d$:删⾄⾏尾ndd:删除当前⾏及其后n-1⾏x或X:删除⼀个字符,x删除光标后的,⽽X删除光标前的Ctrl+u:删除输⼊⽅式下所输⼊的⽂本搜索及替换命令/pattern:从光标开始处向⽂件尾搜索patternpattern:从光标开始处向⽂件⾸搜索patternn:在同⼀⽅向重复上⼀次搜索命令N:在反⽅向上重复上⼀次搜索命令:s/p1/p2/g:将当前⾏中所有p1均⽤p2替代:n1,n2s/p1/p2/g:将第n1⾄n2⾏中所有p1均⽤p2替代:g/p1/s//p2/g:将⽂件中所有p1均⽤p2替换选项设置all:列出所有选项设置情况term:设置终端类型ignorance:在搜索中忽略⼤⼩写list:显⽰制表位(Ctrl+I)和⾏尾标志($)number:显⽰⾏号report:显⽰由⾯向⾏的命令修改过的数⽬terse:显⽰简短的警告信息warn:在转到别的⽂件时若没保存当前⽂件则显⽰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 :保存当前⽂件:e filename:打开⽂件filename进⾏编辑:x:保存当前⽂件并退出:q:退出vi:q!:不保存⽂件并退出vi:!command:执⾏shell命令command:n1,n2 w!command:将⽂件中n1⾏⾄n2⾏的内容作为command的输⼊并执⾏之,若不指定n1,n2,则表⽰将整个⽂件内容作为command的输⼊:r!command:将命令command的输出结果放到当前⾏寄存器操作"?nyy:将当前⾏及其下n⾏的内容保存到寄存器?中,其中?为⼀个字母,n为⼀个数字"?nyw:将当前⾏及其下n个字保存到寄存器?中,其中?为⼀个字母,n为⼀个数字"?nyl:将当前⾏及其下n个字符保存到寄存器?中,其中?为⼀个字母,n为⼀个数字"?p:取出寄存器?中的内容并将其放到光标位置处。

linux vi命令详解-屏幕文本编辑器Vi

linux vi命令详解-屏幕文本编辑器Vi
虽然 Vi采用了状态切换的方法,但电脑的硬件及操作系统多种多样,某些电脑的 键盘上没有特定的几个功能键!那麽不就有某些功能不能用了?这个问题在 Unix 系 统上也一样,几乎各大电脑厂商都有自己的 Unix 系统,而 vi 的操作方法也会随之有 点出入。这里我们采用 PC 的键盘来说明 vi 的操作,但在具体的环境中还要参考相应 的资料,这一点是值得注意的。
文本输入模式
在命令模式下输入插入命令i、附加命令a 、打开命令o、修改命令c、 取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入 的任何字符都被Vi当做文件内容保存起来,并将其显示在屏幕上。在文本 输入过程中,若想回到命令模式下,按键即可。
末行模式
末行模式也称ex转义模式。
linux vi命令和Ex编辑器的功能是相同的,二者主要区别是用户界 面。在Vi中,命令通常是单个键,例如i、a、o等;而在Ex中,命令是以 按回车键结束的正文行。linux vi命令有一个专门的“转义”命令,可访问很 多面向行的Ex命令。在命令模式下,用户按“:”键即可进入末行模式下, 此时linux vi命令会在显示窗口的最后一行(通常也是屏幕的最后一行)显 示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令
linux vi命令是Linux系统的第一个全屏幕交互式编辑程序,它从诞生 至今一直得到广大用户的青睐,历经数十年仍然是人们主要使用的文本编 辑工具,足见其生命力之强,而强大的生命力是其强大的功能带来的。
本章中,我们将循序渐进地介绍如何使用linux vi命令来建立、编辑、 显示以及处理文件。(注:文中的大写字母为[shift]键+相应的小写字 母的组合)
linux vi命令没有菜单,只有命令,且命令繁多。Vi有三种基本工作模 式:命令行模式、文本输入模式和末行模式。

Linux命令:vi编辑器

Linux命令:vi编辑器

Linux命令:vi编辑器Linux命令: vi编辑器vi编辑器(1)》vi是Unix世界中最通⽤的全屏编辑器, Linux中⽤的是vi的加强版vim, vim同vi完全兼容.(当然如果系统中没有安装vim,则可以通过apt-get install vim-gtk 或者[sudo apt-get install vim-gtk] 进⾏安装)》在Linux系统中,vi和vim是完全等价的两个命令,都可以启动vi编辑器。

》vi编辑器的运⾏状态共有三种模式。

》⼀般模式(Normal mode):输⼊vi命令进⼊vi⽂本编辑器的时候,就是⼀般模式了,该模式将⽤户的输⼊看作命令,这个模式允许⽤户移动游标,且允许搜索⽂本功能。

》插⼊模式(Instert mode):从⼀般模式按下I, o, a等字幕都可以进⼊编辑模式,在此模式下,vi将⽤户的输⼊插⼊到当前光标位置,修改暂时保存到缓冲区,按Esc按钮则从编辑模式退回到⼀般模式。

》命令模式(command mode):可输⼊(:、/、?)进⼊到命令模式)输⼊:wq(当⽂件权限位为:444即-r--r--r--时,需要使⽤:wq! 来强制写⼊并保存退出)保存当前⽂件,或者输⼊:q!直接退出。

vi编辑器模式切换图⽰(摘⾃⽹络):1. vi 编辑器(写⽂件/程序) 编写java程序1. vi filename.filetype(如:vi Hello.java)2. 输⼊i (⼩写I)[进⼊插⼊模式i/I、r/R、a/A]开始写java类3. 输⼊esc键[进⼊到命令模式]4. 输⼊: (冒号) [wq表⽰退出并保存, q!退出不保存]5. 编译⽂件: javac Hello.java(若没有jdk包,控制台会提⽰你需要安装jdk, apt-get install jdk包)6. 6. 运⾏java程序:java Hello1. vi 编辑器(写⽂件/程序) 编写C/C++程序1. 输⼊vi Hello.cpp2. 输⼊i(输⼊C/C++程序)3. 输⼊esc退出插⼊模式进⼊命令模式4. 4. 输⼊:wq退出并保存⽂件5. 5. 编译(C/C++程序) 输⼊: gcc –o Hello Hello.cpp或者gcc Hello.cpp(使⽤gcc Hello.cpp编译,系统会默认⽣成可执⾏⽂件a.out,为避免覆盖掉之前有可能存在a.out的⽂件应该使⽤gcc –o Hello Hello.cpp, 此时会编译出⼀个Hello的可执⾏⽂件)6. 6. 运⾏: ./Hello或者./a.outvi编辑器(2)》vi编辑器提供了强⼤的搜索和替换功能》⾸先按下斜杠键(/), 光标会⾃动移动到vi编辑器下⽅的命令⾏,⽤户输⼊待搜索的字符串,按下Enter键开始搜索, vi编辑器可能⽤三种⽅式响应⽤户的搜索。

vi命令汇总

vi命令汇总

vi命令汇总vi命令汇总vi⽅⾯⽹上⼀搜⼀⼤堆,这个在我想不起来的时候查阅的多⼀点,我⽤的shell是zsh 进⼊vi的命令vi filename :打开或新建⽂件,并将光标置于第⼀⾏⾸vi +n filename :打开⽂件,并将光标置于第n⾏⾸vi + filename :打开⽂件,并将光标置于最后⼀⾏⾸vi +/pattern filename:打开⽂件,并将光标置于第⼀个与pattern匹配的串处vi -r filename :在上次正⽤vi编辑时发⽣系统崩溃,恢复filenamevi filename....filename :打开多个⽂件,依次进⾏编辑移动光标类命令h :光标左移⼀个字符l :光标右移⼀个字符space:光标右移⼀个字符Backspace:光标左移⼀个字符k或Ctrl+p:光标上移⼀⾏j或Ctrl+n :光标下移⼀⾏Enter :光标下移⼀⾏w或W :光标右移⼀个字⾄字⾸b或B :光标左移⼀个字⾄字⾸e或E :光标右移⼀个字⾄字尾) :光标移⾄句尾( :光标移⾄句⾸}:光标移⾄段落开头{:光标移⾄段落结尾nG:光标移⾄第n⾏⾸n+:光标下移n⾏n-:光标上移n⾏n$:光标移⾄第n⾏尾H :光标移⾄屏幕顶⾏M :光标移⾄屏幕中间⾏L :光标移⾄屏幕最后⾏0:(注意是数字零)光标移⾄当前⾏⾸$:光标移⾄当前⾏尾屏幕翻滚类命令Ctrl+u:向⽂件⾸翻半屏Ctrl+d:向⽂件尾翻半屏Ctrl+f:向⽂件尾翻⼀屏Ctrl+b;向⽂件⾸翻⼀屏nz:将第n⾏滚⾄屏幕顶部,不指定n时将当前⾏滚⾄屏幕顶部。

插⼊⽂本类命令i :在光标前I :在当前⾏⾸a:光标后A:在当前⾏尾o:在当前⾏之下新开⼀⾏O:在当前⾏之上新开⼀⾏r:替换当前字符R:替换当前字符及其后的字符,直⾄按ESC键s:从当前光标位置处开始,以输⼊的⽂本替代指定数⽬的字符S:删除指定数⽬的⾏,并以所输⼊⽂本代替之ncw或nCW:修改指定数⽬的字nCC:修改指定数⽬的⾏删除命令ndw或ndW:删除光标处开始及其后的n-1个字do:删⾄⾏⾸d$:删⾄⾏尾ndd:删除当前⾏及其后n-1⾏x或X:删除⼀个字符,x删除光标后的,⽽X删除光标前的Ctrl+u:删除输⼊⽅式下所输⼊的⽂本搜索及替换命令/pattern:从光标开始处向⽂件尾搜索patternpattern:从光标开始处向⽂件⾸搜索patternn:在同⼀⽅向重复上⼀次搜索命令N:在反⽅向上重复上⼀次搜索命令:s/p1/p2/g:将当前⾏中所有p1均⽤p2替代:n1,n2s/p1/p2/g:将第n1⾄n2⾏中所有p1均⽤p2替代:g/p1/s//p2/g:将⽂件中所有p1均⽤p2替换选项设置all:列出所有选项设置情况term:设置终端类型ignorance:在搜索中忽略⼤⼩写list:显⽰制表位(Ctrl+I)和⾏尾标志($)number:显⽰⾏号report:显⽰由⾯向⾏的命令修改过的数⽬terse:显⽰简短的警告信息warn:在转到别的⽂件时若没保存当前⽂件则显⽰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 :保存当前⽂件:e filename:打开⽂件filename进⾏编辑:x:保存当前⽂件并退出:q:退出vi:q!:不保存⽂件并退出vi:!command:执⾏shell命令command:n1,n2 w!command:将⽂件中n1⾏⾄n2⾏的内容作为command的输⼊并执⾏之,若不指定n1,n2,则表⽰将整个⽂件内容作为command的输⼊:r!command:将命令command的输出结果放到当前⾏寄存器操作"?nyy:将当前⾏及其下n⾏的内容保存到寄存器?中,其中?为⼀个字母,n为⼀个数字"?nyw:将当前⾏及其下n个字保存到寄存器?中,其中?为⼀个字母,n为⼀个数字"?nyl:将当前⾏及其下n个字符保存到寄存器?中,其中?为⼀个字母,n为⼀个数字"?p:取出寄存器?中的内容并将其放到光标位置处。

vi和vim的区别

vi和vim的区别

vi和vim的区别它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,⽽且还有⼀些新的特性在⾥⾯。

vim的这些优势主要体现在以下⼏个⽅⾯:1、多级撤消我们知道在vi⾥,按 u只能撤消上次命令,⽽在vim⾥可以⽆限制的撤消。

2、易⽤性vi只能运⾏于unix中,⽽vim不仅可以运⾏于unix,windows ,mac等多操作平台。

3、语法加亮vim可以⽤不同的颜⾊来加亮你的代码。

4、可视化操作就是说vim不仅可以在终端运⾏,也可以运⾏于x window、 mac os、 windows。

5、对vi的完全兼容某些情况下,你可以把vim当成vi来使⽤。

vi和vim都是Linux中的编辑器,不同的是vim⽐较⾼级,可以视为vi的升级版本。

vi使⽤于⽂本编辑,但是vim更适⽤于coding。

vi有3个模式:插⼊模式、命令模式、低⾏模式。

插⼊模式:在此模式下可以输⼊字符,按ESC将回到命令模式。

命令模式:可以移动光标、删除字符等。

低⾏模式:可以保存⽂件、退出vi、设置vi、查找等功能(低⾏模式也可以看作是命令模式⾥的)。

⼀、打开⽂件、保存、关闭⽂件(vi命令模式下使⽤)vi filename //打开filename⽂件:w //保存⽂件:w //保存⾄⽂件:q //退出编辑器,如果⽂件已修改请使⽤下⾯的命令:q! //退出编辑器,且不保存:wq //退出编辑器,且保存⽂件⼆、插⼊⽂本或⾏(vi命令模式下使⽤,执⾏下⾯命令后将进⼊插⼊模式,按ESC键可退出插⼊模式)a //在当前光标位置的右边添加⽂本i //在当前光标位置的左边添加⽂本A //在当前⾏的末尾位置添加⽂本I //在当前⾏的开始处添加⽂本(⾮空字符的⾏⾸)O //在当前⾏的上⾯新建⼀⾏o //在当前⾏的下⾯新建⼀⾏R //替换(覆盖)当前光标位置及后⾯的若⼲⽂本J //合并光标所在⾏及下⼀⾏为⼀⾏(依然在命令模式)。

vi 命令常见问题解答

vi 命令常见问题解答

vi 命令常见问题解答作者:译者Elale[vi-faq中文版]0.0 - 引言 -- 我怎样用这个FAQ这个文档分为了几个部分.首先,第0节和第1节介绍了什么是vi;第2节则收录了很多新学者的问题,一些对vi没有很多经验的人也经常问这些问题.这里面包括诸如“命令模式和插入模式之间的区别”,以及“我怎样拷贝和粘贴”之类的问题.第3节是面向vi的中级用户的,它从问题“我如何查找和替换”开始,逐步深入,直到对vi里面的宏(Macro)的用法讨论为止.第3节还包括了一个vi的快速参考,有一个规范的vi命令列表.再下面,是一个有关“:set”命令的列表,包含了所有能定制vi环境的变量,这些变量也可以在.exrc文件中定义.我们已经在一个运行SunOS和UCB版本vi的机器上验证了快速参考.除了SunOS 带的vi外,每个命令都可以在系统V和UCB版本vi运行,但是我个人并没有验证这一点. 除非我们在文档中指明,缺省我们假定你处在命令模式下.我们还尝试保留尽可能多的术语,因为在原始的vi文档中使用了这些术语,尽管我可能忘了它的本来含义.0.1 - 索引第一个文件:0.0 - 引言 -- 我怎样用这个FAQ?0.1 - 索引0.2 - 我可以散发这个FAQ吗?0.3 - 你能为这个FAQ做什么?1.0 - 什么是vi?1.1 - 关于vi有什么重大的交易吗? 为什么大家都用它? 更进一步说,为什么我要用它?1.2 - 噢! 这听起来不错! 有没有理由不用vi?1.3 - vi能在多少不同的操作系统下面运行?1.4 - 好吧, 你说服了我. 我决定开始使用vi. 我该从哪儿开始?1.5 - vi有其他一些可用的变种吗?2.0 - vi入门2.1 - 有什么游戏帮助我们学习vi吗?2.2 - 命令模式和插入模式有什么区别?2.3 - 等等,我的键盘没有<Esc>键,我该怎么办?2.4 - 那些~s是什么东西?2.5 - 我无法习惯用 hjkl, 你有什么建议吗?2.6 - 我如何才能不存盘就退出?2.7 - 我怎样插入一个文件?2.8 - 我怎样查找文本?2.9 - 我怎样搜索一个控制序列?2.10 - 我怎样重新格式化文本?2.11 - 我怎样复制文本?2.12 - 啊! 我刚才敲了一个dG,然后我的论文就没有了! 我该怎么办?(或者,我刚才犯了个错误,我该怎么办?)2.13 - 我正在写我的论文,被告知我必须将每一节都放在不同的文件里,我该怎么办?2.14 - 所有的:命令都是怎样处理的?3.0 - 怎样查找和替换?3.1 - 我怎样在vi中运行一个程序?3.2 - 啊! 我正在写我的论文, 系统崩溃了! 怎么办?3.3 - 有没有使vi对程序员更友好的窍门?3.4 - 宏 -- 我怎样写宏?3.5 - 我怎样将一个功能键定义成一个宏?3.6 - 有没有办法缩写文本?3.7 - 我怎样在当前文档中做拼写检查?3.8 - 我手头有一个硬拷贝的终端, 我还能用vi吗?3.9 - 好了,是不是处在开放模式下的原因呀?! 但是我现在没有用硬拷贝终端,它还是在开放模式呀?第二个文件:4.0 - vi档案的在线帮助在哪儿?5.0 - 好玩的vi诀窍,无聊的宏5.1 - 好玩的vi诀窍5.2 - 好玩的宏6.0 - 依字母顺序的vi快速参考6.1 - 命令模式的输入选项(:命令)6.2 - 设置选项(set)7.0 - 建立 .exrc文件7.1 - .exrc文件的样本8.0 - vi的漏洞9.0 - 术语表10.0 - 关于vi的参考书目0.2 - 我可以散发这个FAQ吗?可以!只要你没有对它做任何修改,或者用它来赚钱.0.3 - 你能为这个FAQ做什么?首先, 把你发现的错误告诉我. 如果你有什么建议我们也很欢迎. 你认为还不清楚的地方告诉我们,我们同样欢迎.还有, 使用vi! (Spread the word) 我很抱歉我无法将所有对这个FAQ有贡献的人都列出来, 因为许许多多的人都给过我建议和帮助,如果我将他们都列出来的话,那么恐怕这张贡献者的清单将和这个文档本身一样长了.1.0 - 什么是vi?vi是个可视化的编辑器(vi就意味着可视化--VIsual). 那么,什么是可视化的编辑器呢?(相对于非可视化的编辑器来说)?可视化的编辑器就是可以让你在编辑文本的时候看到它们.今天,这听起来似乎非常普通,反之,非可视化的编辑器似乎很奇怪. 非可视化的编辑器的例子可以举出不少:如ed, sed和edlin(直到相当近的一段时间内,它是DOS自带的最后一个编辑器)等.vi是威廉.侨伊写的,作为BSD UNIX的一部分. 后来AT&T也开始用vi, 于是标准UNIX也开始用vi了.1.1 - 关于vi有什么重大的交易吗? 为什么大家都用它? 更进一步说,为什么我要用它?vi是UNIX下面的缺省编辑器, 因此几乎近来所有的UNIX都捆绑了vi(近来是指1984年左右).这意味着无论何时你跨平台使用某种UNIX,你都知道在你指尖下面有一个强力的编辑器.为什么不是别的呢? vi是个强大的编辑器.同样,一旦你了解了vi,你就能很快的编辑你的文件,因为它非常能节省你的敲键次数. 由于它在插入和命令两种情况下使用不同的模式,它比大多数的不基于这种模式的编辑器要快. 而且,vi非常小(我机器上面的版本只有200K).还有,vi几乎能做任何事,只要你知道如何使它做你想做的事.1.2 - 噢! 这听起来不错! 有没有理由不用vi?有. 有一个非常好的理由: vi稍微有些难学, 如果你开始学的话,vi又慢又让人痛苦,当然,一旦你学会了, vi就快多了. 但是学习的过程很慢. 有人曾经问我, 如果vi是个比较易学的编辑器, 它是否直观(intuitive)呢? 我一般这样回答:"是的,我们有些人是这样认为.但是大多数人认为我们疯了."1.3 - vi能在多少不同的操作系统下面运行?UNIX. 就是它. 尽管如此,还是有很多vi的变种运行在不同的操作系统上. 我就在以下一些操作系统上用过vi: UNIX, DOS, OS/2, MAC SYSTEM 7.(后面有一个有关细节的列表)1.4 - 好吧, 你说服了我. 我决定开始使用vi. 我该从哪儿开始?好吧, 狡猾的家伙. 关于vi有很多很好的书:大多数讲UNIX的书至少有一章给了vi,而且有不少是专门讲vi的书.我没有什么偏爱. 所以你最好是问问你们那儿的vi高手们他们是从哪儿学来的. 还有,到处试. 用vi打开一个不重要的文档(你的论文不象是个学vi的好实验品),然后再到处试. 我无法想象有人学习vi却不花相当多的时间去到处试试. 记住:如果你有些地方不明白了, 只要敲两次<Esc>键,你就又回到命令模式下了.我要提到的一点是,我想在这里提比较合适,就是如果要成为系统管理员或者其他对UNIX配置做什么修改的话,最好是学学ed或者ex,因为有些版本的UNIX没有把vi放在根分区里面,这样你就可能无计可施了. ed是个不错的选择.1.5 - vi有其他一些可用的变种吗?只能列出一部分:STvi (STevie), elvis, vile, vim, 和nvi, xvi.elvis适用于:Amiga, DOS, OS/2, Unix, VMS, Atari.STevie适用于: Atari ST, DOS, Unix, Mac System 7.Mac System 7可以在很多info-mac的镜象站点获取,在/info-mac/text下. (例如)nvi是将和BSD 4.4捆绑在一起的vi.vim适用于: Amiga, DOS, Mac System 7, Unix.Amiga, DOS,和源码可以在以下站点换取:ftp.fu-berlin.de /misc/editors/vim Mac System 7可以在很多info-mac的镜象站点获取,在/info-mac/text下. (例如)vile适用于: DOS, OS/2, Unix, VMS.xvi适用于: DOS, Unix.vi的变种之间很有很多差异.很多都改进了vi,大多数都可以使用在这个文档种列出的命令,但是有一些不同的地方.更进一步的细节,你可以参考这些变种附带的相应的文档.2.0 - vi入门对vi的初学者来说,有些基本的提示.第一,任何时候,手头都要有一份命令摘要. 我们将在后面给出一个快速参考/命令摘要. 第二, 找一本vi方面的比较好的书.这个文档不是学vi的最佳途径(最起码现在还不是),我不敢保证这个文档能教会一个对vi一无所知的人, 而很多书已经做到了这一点. 但是,我们这里还是给出了不少提示. 对选择书籍来说,有一个标准的原则:买之前一定要仔细阅读. 要了解这本书对你是否有意义.确信它能在你练习vi的时候有用. 和其他的书做个比较 --不管怎样,vi可能让你感到非常莫名其妙, 而且你要确信这么一点:是书让你糊涂,而不是你低估了学vi的难度.还有, 找一些诸如"学vi"(vilearn),"vi向导"(vitutor)之类的软件来帮助你掌握vi的基本知识.2.1 - 有什么游戏帮助我们学习vi吗?这似乎很无聊, 但是事实上UNIX系统里面有不少游戏可以帮助你学习使用vi.这些帮助主要是一些基本知识. 虽然我还不知道有哪个游戏可以帮你学习vi的所有命令, 但我确实知道有一些可以帮助你学习使用 hjkl来移动光标. NetHack,一个类Rogue 的游戏,就对这非常有帮助. 而且它是一个很大的游戏,能玩很长一段时间. 我没有贬低其他游戏的意思,这些游戏是: rogue, moria, omega, worm, snake.2.2 - 命令模式和插入模式有什么区别?vi将命令模式和插入模式区分开来,这经常被认为是vi的一个大问题,但往往这也被认为是vi的优势所在. 理解其中的区别是掌握vi的关键.vi启动时,开始处于命令模式;在这种模式下,我们可以在文件中到处移动,改变文本的某个特定区域, 剪切, 复制和粘贴文本,还有更多. 插入模式是指用户可以真正插入文本.换句话说,命令模式是用来在文件中移动,而插入模式是用来在文件中键入文本.有些命令,例如: a, i, c, C, O, o和其他一些可以从命令模式切换到插入模式. <Esc>键或者^C(CRTL+C)可以脱离插入模式而返回到命令模式.你要适应这种差别. 它使得vi区别于其他的编辑器. 它也使你能在你的手不离开标准键盘做很多事情.2.3 - 等等,我的键盘没有<Esc>键,我该怎么办?试试敲 ^[(CTRL+[). 如果你的键盘有一个<Meta>键,再试试它.如果还不行,再试试^3.2.4 - 那些~s是什么东西?它们仅仅是用来让你知道你的文档末尾在哪儿.实际上它们并不在你的文档里面,所以你用不着担心它们.2.5 - 我无法习惯用 hjkl, 你有什么建议吗?首先,如果你的终端设置正确而且你连接的也没有问题的话,你可以使用箭头键.但是,如果你认为你要经常使用vi,那么最好是习惯使用 hjkl,因为它们敲起来更快. 而且,有时候连接出问题了,使得ESC序列都可能丢失了.(这样你可能就无法使用箭头键了--译注)2.6 - 我如何才能不存盘就退出?:q!可以做到这一点. 如果vi看起来冻住了,确信你没有错敲了个 ^S. 敲^Q可以解开^S.2.7 - 我怎样插入一个文件?:r <文件名>例如,要插入文件/etc/motd, 可以敲 :r /etc/motd.这将把文件插入到光标处.如果你在r前面指定了一个数字,那么这条命令将把文件插入到那个位置.2.8 - 我怎样查找文本?/<文本>将向前查找, ?<文本>将向后查找. ??或者//将重复上次查找. 在UNIX 下,这已经是个可爱的标准用法了. 而且, 在vi中, n将查找文本下一次的出现位置. N重复上次查找,不过逆转了查找的方向. 在查找中可以使用规范式.2.9 - 我怎样搜索一个控制序列?/^V^<序列>^V会告诉vi照字面理解下一个字符,不要把它看作是一条命令.2.10 - 我怎样重新格式化文本?如果你的计算机有一个名叫fmt的程序, 你要做的仅仅是在命令模式下面敲!}fmt(记住,不要在前面加icon_smile.gif. 这可以重新格式化你的文件,从光标所在的位置一直到当前段落的结尾.如果你的机器里面没有fmt这个程序, 你就得去找个类似的软件了(我记得在公共域里面有不少这样的程序,但是我对此了解不多)2.11 - 我怎样复制文本?这有点复杂.把这节拿出来,多看几遍;还有,一定要多做实验."<字母>yy可以把一行文本拷贝到寄存器中(这里的寄存器是vi的术语,指可以存放剪切和拷贝下来的东西的地方), <字母>里面的字母必须是a到z之间的一个. "<字母>dd可以把一行剪切下来放到寄存器里面. 你可以在yy或者dd前面用数字指明要拷贝或者剪切的行数.如果<字母>中的字母是大写的话,意味着把文本插入到寄存器中已有的文本之前. "<字母>p把文本插入到光标之后,"<字母>P把文本插入到光标之前.如果寄存器中含有某一行的开头或结尾,这一行将会被放到另一合适的行上. Y是yy的快捷方式. 还有, y$, yH,yM,等等,都是可以用的.d命令也是一样的.如果要快速的剪切和粘贴, 你就无须指定寄存器了.如果这样的话,你就不能往寄存器里面添加文本了.而且只要有一个删除命令的话,寄存器中的东西就没有了(包括x命令).举例来说,如果要移动上一段的话,你可以把光标移到段落的开头,敲"a13dd,再把光标移到你想要放文本的地方,敲"ap,就可以把那段文本放到光标所在的行后面.现在,大概你想要剪切和粘贴文本到不是行末尾的区域去.我们来看如何做到这一点:我们可以使用 m<字母> 命令来标记一个区域,这个字母可以和剪切/粘贴寄存器的字母相同,因为它们是保存在内存中的不同位置. 然后,敲"<寄存器>`<字母>[yy或者dd], 这里的寄存器就是要保存文本的那个寄存器,<字母>是用来标记的,yy和dd是你的操作.2.12 - 啊! 我刚才敲了一个dG,然后我的论文就没有了! 我该怎么办?(或者,我刚才犯了个错误,我该怎么办?)u可以撤消你刚才的操作.U可以撤消你对当前行的修改(当然,一行对于一篇论文来说当然很不够了). :e!可以不保存修改而重新把你的文件调进来. 还有,你删除的文本都保存在从0到9编号的寄存器里.所以,"<n>p就可以把上第n次的删除文本粘贴出来.你可以按如下的方法迅速地查看所有删除的文本. 先试一个,不对的话,敲u,再试下一个.(为加速这个过程,这时vi中的.命令和通常的用法不一样了.它不是重复上次操作,而是试下一个寄存器,这样你要做的无非就是: "1p u . u .,直到你撤消了你想撤消的删除操作)2.13 - 我正在写我的论文,被告知我必须将每一节都放在不同的文件里,我该怎么办?:[m],[n]w <文件名>可以将从第m行到第n行之间的文本保存到<文件名>所指定的文件中.这种行序号方法几乎在所有的:命令下都可以使用. 如果你用命令:[m],[n]w >><文件名>,这些文本将添加到文件的后面.2.14 - 所有的:命令都是怎样处理的?:后面的命令都是从ex编辑器里面过来的. 这就给vi加入了很多灵活性,也使vi功能更强大. 例如, 有很多的方法可以用来查找和替换,它们有很多的类似地方(事实上,它们在某种意义上说都是一样的)3.0 - 怎样查找和替换?有很多方法. 最简单的是::s/old/new/g, 但是,这仅对当前行起作用..., 所以,我们用:%s/old/new/g, 更一般的,我们还可以用:[范围]s/old/new/[cg],这里,[范围]是任意的行范围,包括行号,$(文件末尾),.(当前行),%(当前文件),或者两个行号之间加个破折号(或者可以这样: .,+5,这表示下面5行).[cgi]是c,g,i中间的一个或者什么也没有.c告诉vi每次替换的时候要给提示,g是说对所有一行中出现的地方都做替换.i则是指在查找时不区分大小写.如果最后一个斜杠(/)后面没有东西的话,那么vi只替换在行中第一次匹配的地方.我比较喜欢这样做::g/foobar/s/bar/baz/g, 这个命令首先搜寻foobar,然后把它变成foobaz. 它没有改变jailbars, 而其他的一些命令可能会改变jailbars. 这是我的方法,但是可能比较难记.当然,你还可以在查找的的时候使用正规式,以及在替换文本的时候使用其他一些命令.如果你在正规式里用(和)来剥离一个序列的话,你会发现你可以做很多好玩的事情.例如::g/(foo)(bar)/s/2/1baz/g 将foobar替换成foobaz还有一些特殊的序列:& 所有查找时匹配到的东西[1-9] 1到9号用(和)括起来的东西u 下一个字符将被变成大写.U 以后的字符都变成大写,直到遇到e或El 下一个字符将被变成小写.L 以后的字符都变成大写,直到遇到e或E[Ee] 更改大小写的选择区域的终点3.1 - 我怎样在vi中运行一个程序?:!命令可以在vi中运行程序. :sh会启动一个交互式的外壳(SHELL).在这个外壳里面, 如果你愿意,你还可以再次运行vi. 当你在编辑Makefiles和配置文件来编译某个程序的时候,这可能比较有用. 这比:e优越之处在于它无须保存文件,而且如果你退出外壳的时候,vi还回到原来的地方.(当然,我还是建议你先保存一下文件)3.2 - 啊! 我正在写我的论文, 系统崩溃了! 怎么办?不要怕! 你会收到一封电子邮件,里面就是你的论文.敲入vi -r <文件名>(这个文件名就是系统崩溃时你正在编辑的文件)你就可以恢复出你的论文来.只敲vi -r将把所有可能恢复的文件都列出来.3.3 - 有没有使vi对程序员更友好的窍门?:set ai可以让vi自动对齐.:set sw=#,#是移动的宽度(shiftwidth),或者说TAB键的宽度(tabwidth);你可以用<<或者>>命令来左移或右移某一行. 还有, 你可以使用 <%或>%来将{,(或[等符号括起来的文本都左移或右移;这时候,你必须把光标放在这些符号({,(或[)上面. :set sm会在你敲},]或)显示出对应匹配的{,[或(来.:set lisp会对lisp编程有些帮助. ()被移到s表达式(s-expressions)外面,如果原子(atoms)没有停止则{}将被移走.3.4 - 宏 -- 我怎样写宏?:map <lhs> <rhs>, 其中<lhs>最多10个字符,<rhs>最多100个字符. 以后,如果你敲了<lhs>,vi就会用<rhs>来取代它.所有的宏都是在命令模式下开始的,但是可以在你想在的模式下终止. 记住,在你想用的控制字符前面加上^V.:unmap <lhs>将删除这个宏. :map!<lhs> <rhs> 使得<lhs>将<rhs>插入到文档中去.3.5 - 我怎样将一个功能键定义成一个宏?如果<lhs>是#n,n是0-9之间的一个数,那么这个宏就映射成某一个功能键了.(你可以试一下F1-F10之间的键--译者)3.6 - 有没有办法缩写文本?当然了. 这可是vi呀,它能做任何事情!:ab email ellidz@可以在你敲完email后,把那个没有缩写的文本插入到文件中. :una email取消缩写.3.7 - 我怎样在当前文档中做拼写检查?这儿有一个宏可以做到这一点. 这些应该放在你的.exrc文件中(后面我们将对.exrc进一步讨论). 它是一个相当简单的宏. 它仅仅是调用ispell来处理当前文件.当然,你的系统里面一定得有ispell这个程序. 使用它的时候,只需要敲个V键就行了(因为vi并没有用V,所以V是一个比较合适的键)map V :w^M:!ispell % ^M:e!^M^M第二个^M使你在拼写检查完之后无须敲回车就可以到vi中.(译注, 在我的系统里,没有ispell,只有spell,我用它替换了ispell,工作的不错;还有,^M不是两个字符,而是一个字符,通过^V^M敲进去的;另外,我个人认为第二个^M 还是不要的好,因为直接回到vi后你就无法看到拼写检查的结果了)3.8 - 我手头有一个硬拷贝的终端, 我还能用vi吗?好了,好了. 我并认为有人会真的问这个问题.这个问题太偏了,我们大可不必理它.(而且,它回答了一个非常普通的问题)vi启动的时候处于一种特殊的模式下面,叫做"开放模式"; 在这种状态下,事情或多或少的有些不同. 删除的字符在你面前显示成一些',vi会认为你的终端窗口只有一行. ^r可以把当前行重新输出. z则把当前行周围的窗口重画一遍.3.9 - 好了,是不是处在开放模式下的原因呀?! 但是我现在没有用硬拷贝终端,它还是在开放模式呀?这儿的问题就是vi没有认出你用的终端的类型. 于是它假定你有的是个最烂的终端,所以它决定依然处在开放模式下.这似乎没什么用处.因为没有多少人喜欢开放模式,但是开放模式还是需要知道你的终端的一些最起码的信息的.现在,我们来看如何解决这个问题.我们有可能把它分成几种特殊的情形,但是,一般情况下,这并没有用处. 如果你直到你的终端的类型, 你可以在UNIX提示符下面设置终端类型(在CSH及其变种下面,使用命令setenv TERM <终端类型>;在SH及其变种下面,使用命令TERM=<终端类型>;export TERM)最好你能把上面的命令写在.profile文件或者.cshrc文件里面,这样你一登录它就自动地给你设置好了.(当然,你应该知道如何使用ed,或者你能在UNIX提示符下面设置好终端类型以便能使用vi, 这样你才有可能去编辑这些文件)如果你确实不知道你地终端类型,试一试vt100.现在大多数地终端或者终端仿真器都能仿真vt100. 如果这还不能生效的话,你只好去找个高手来帮你了.4.0 - vi档案的在线帮助在哪儿?有一个vi的FAQ,其中列出了vi档案的所有在线文件. 同时它还列出了这些文档的镜象站点. 最主要的一个地址是alf.uib.no,但是这些文档在很多很多地地方都保存着. vi-archive faq把它们都给列出来了.你在下载这些文件之前一定要核对一下这个FAQ.因为很有可能有一个站点比去挪威的站点更近更快些.一个镜象站点是/pub/vi, 另一个是.au/pub/Vi,这些站点上有很多有关vi的文件,还有一些vi的变种版本;当然,UCB版本的vi 是肯定有的, 还有许多的宏.5.0 - 好玩的vi诀窍,好玩的宏这一节主要讲述一些无聊的诀窍和一些无聊的宏.事实上,任何vi的诀窍和宏我们都欢迎,只要它们不是过分冗长. 如果有人向我建议而我也认为确实值得加的话, 我会考虑加进去的.5.1 - 好玩的vi诀窍xp 删除光标下的字符,再把粘贴到后面去.换句话说,它交换了当前两个字符的位置.ddp 和xp类似,不过是交换两行的位置.uu 撤消和重复上次所做的修改.(这可以使你不改变什么东西就可以到你上次所做的修改处)5.2 - 好玩的宏和垂直上方的字符交换位置map * kxjphxkP折行map g $80|F r(译注,我对这条宏表示疑问!)改变大多数单词的大小写map v ywmno:s/./~/g(译注,这条好象也不大对!)在当前的单词周围加上`和'map *` i`'在当前的单词周围加上'和'map *' i''在当前的单词周围加上"和"map *" i""(这几条也太无聊了吧--译注)在当前的单词周围加上``和``map! `` `'(咦,好象又有问题?--译注)从光标处把当前行分开,在下一行开头加上一个>号(例如,引用USENET).如果加上了单词的折行功能那么最后一个单词可能被折在第一行.map g may0O`ay$:s/./ /g(不对吧--译注)插入一个字符map g i$^[r6.0 - 依字母顺序的vi快速参考... 是指有些东西需要在命令之前或之后指明.这通常是说光标的移动键(h,j,k,l,w,b等等)或者是指行号.# (这里#代表一个数字) 执行n次后面的命令...: 进入ex模式) 下一句( 上一句} 下一段{ 上一段]] 下一节[[ 上一节0 行的开头$ 行的末尾^ 行的第一个非空白字符+ 下一行的开头- 上一行的开头(空格) 下一个字符(回车) 下一行/ 向前搜索? 向后搜索% 查找当前小(中,大)括号的匹配字符, 逆向重复上一个f,F,t或T操作; 重复上一个f,F,t或T操作. 重复上一个操作` 转到标记处' 转到标记所在行的开头`` 查找前回到上一个做标记的地方'' 查找前回到上一个做标记所在行的开头~ 切换字符的大小写" 保存到寄存器中!! 重复上一次SHELL命令! 把后面的文本送给命令, 取代输出(例如, !}fmt把当前的段落送给命令fmt处理,然后用fmt返回的东西替换输出.)>> 右移当前段落一个移动宽度(shiftwidth)<< 左移当前段落一个移动宽度(shiftwidth)>% 从当前到匹配小(中,大)括号之间的文本右移<% 从当前到匹配小(中,大)括号之间的文本左移(似乎漏了一个符号|, 移动到某一列----译注)a 在当前位置之后添加A 在当前行的末尾添加^a 没有使用b 上一个单词的开头B 上一个单词的开头,忽略标点符号^b 上移一屏c 覆盖...C 覆盖到行末尾^c 终止插入模式,在命令模式没有用d 删除...D 删除到行末尾^d 下移半屏,如果在插入模式下则移到上一个移动宽度(ShiftTab)处e 单词的末尾E 单词的末尾,忽略标点符号^e 屏幕下卷一行f 查找...F 向后查找...^f 下移一屏g 未用。

linuxVI中输入中文不能写入文件转换失败

linuxVI中输入中文不能写入文件转换失败

linuxVI中输入中文不能写入文件转换失败Q:1)通常在非中文编码方式的文本中输入中文后,vi不能保存文件.错误信息如下:test.txt" 不能写入 -- 转换失败请按 ENTER 或其它命令继续2)而且删除中文字符时,总是半个半个的删除,过长的行还会显示乱码.A:在用户的home目录下的.vim或.exrc文件中,加入set encoding=cp936或set encoding=gb2312;则很好地可以解决这些问题,如果没有这个文>件,可以自己建立.在主目录下$ echo "set encoding=2byte-cp936" >> .exrcQ:如果文本文件的编码是utf-8 Unicode,用vi打开会乱码.A:在用户的home目录下的.vim或.exrc文件中(如果没有自己建立).加入1)set encoding=cp936或set encoding=gb2312;2)set fileencodings=utf-8则可以正常编辑GB和utf-8文件.Q:如何用vi实现文本的编码转换?A:(1)进入空白的vi界面,在命令行修改文件的编码方式,如下:set encoding=gb2312 fileencodings=utf-8或set encoding=cp936 fileencodings=utf-8这时,打开utf-8文本(:e filename),则可以正常编辑.(2)如果想转换成gb2312,或cp936编码方式,则输入下列命令:set encoding=gb2312 fileencodings=gb2312 fileencoding=gb2312或:set encoding=cp936 fileencodings=cp936 fileencoding=cp936存档即实现了文本的编码转换.(3)反之亦然.:set encoding=cp936 fileencodings=utf-8 fileencoding=utf-8存档即实现了文本的编码转换.。

linux命令保存并退出的语句

linux命令保存并退出的语句

linux命令保存并退出的语句Linux是一种开源的操作系统,它提供了丰富的命令行工具来进行文件管理、进程控制、网络通信等操作。

在Linux中,保存并退出是我们常用的操作之一。

下面列举了十个常用的Linux命令保存并退出的语句,希望对您有所帮助。

1. vi编辑器保存并退出:- 输入命令模式:按下Esc键- 保存并退出:输入命令":wq",然后按下Enter键2. nano编辑器保存并退出:- 按下Ctrl键和X键,然后按下Y键- 输入文件名(如果需要更改文件名),然后按下Enter键3. vim编辑器保存并退出:- 输入命令模式:按下Esc键- 保存并退出:输入命令":x",然后按下Enter键4. emacs编辑器保存并退出:- 按下Ctrl键和X键,然后按下Ctrl键和S键保存文件- 按下Ctrl键和X键,然后按下Ctrl键和C键退出编辑器5. sed命令保存并退出:- 输入命令模式:按下Esc键- 保存并退出:输入命令":wq",然后按下Enter键6. awk命令保存并退出:- 输入命令模式:按下Esc键- 保存并退出:输入命令":wq",然后按下Enter键7. grep命令保存并退出:- 输入命令模式:按下Ctrl键和C键8. tar命令保存并退出:- 输入命令模式:按下Ctrl键和C键9. zip命令保存并退出:- 输入命令模式:按下Ctrl键和C键10. gzip命令保存并退出:- 输入命令模式:按下Ctrl键和C键这些命令在Linux系统中都是常用的工具,可以满足保存并退出的需求。

通过这些命令,我们可以在编辑器中保存修改后的文件,并退出编辑器。

无论是vi、nano、vim还是emacs编辑器,都提供了快捷的操作方式来实现保存并退出。

此外,sed、awk、grep等命令可以用于文本处理和搜索操作,而tar、zip、gzip等命令可以用于文件压缩和归档操作。

中文显示问题终端显示,vi编辑器显

中文显示问题终端显示,vi编辑器显

中文显示问题终端显示,vi编辑器显示中文显示问题(终端显示,vi编辑器显示)2010-12-27 22:41对于国内的Linux用户,经常烦恼的一个问题是:系统常常在需要显示中文的时候却显示成了乱码,而由于某些原因,需要英文界面的系统的时候,却苦于系统不能正常输入和显示中文。

另外,由于大部分主要Linux发行版都是以英语为主体的,英文界面的系统和应用程序不管在界面的美观程度和稳定程度上都比中文的略好一些,各种奇怪的BUG也要少一些。

因此,很多稍微有英语基础的Linux用户都宁愿使用英文界面的系统。

但是,矛盾又突现出来:在英文系统下,如何才能正常显示和输入中文呢?有没有两全其美的方案呢?因此,笔者开始探索如何解决这个问题。

我的完美状态是:系统和应用程序全部为英文(系统菜单、应用程序工具栏、默认输入法等),而我需要阅读和撰写中文文档的时候,能正确的显示中文并调出中文输入法。

经过尝试,设置成功,现在以FC8为例,讲解一些相关知识和设置过程。

本文主要通过修改系统配置的过程来展现修改linux系统配置的一般思路和过程,如果你不太有耐心看完,请跳过文章的1-4节,直接看第五节快速设置部分。

一、相关变量介绍我们知道大部分Linux系统是无所谓中文版和英文版的,以FC8为例,系统发行的时候全世界都一样,系统是中文的还是英文的完全取决于你选择的语言包。

不同国家的人在安装使用的时候选择属于自己国家的语言包,应用程序中的语言也不是写死的,它根据系统的设置来调用相关的语言,所以,一个应用程序写出来不经过修改,全世界不同国家的用户都可以以母语界面使用它,这就是所谓的internationalization(国际化),简称i18n(这里,让我想起了配置文件/etc/sysconfig/i18n)。

这也是未来软件的发展趋势。

那么,如果我在系统中安装了不同的语言包和不同的字体,系统是如何判断我所要的语言界面并调用相关的字体的呢?系统中那些文件和变量在控制这些呢?在redHat和FC系列Linux系统下,记录系统默认使用语言的文件是/etc/sysconfig/i18n,如果默认安装的是中文的系统,i18n的内容如下:代码:LANG="zh_CN.UTF-8"SYSFONT="latarcyrheb-sun16"SUPPORTED="zh_CN.UTF-8:zh_CN:zh"其中LANG变量是language的简称,稍微有英语基础的用户一看就看出来这个变量是决定系统的默认语言的,即系统的菜单、程序的工具栏语言、输入法默认语言等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
set history=100 " keep 50 li ruler " Show the cursor position all the time
colorscheme elflord " Make the colors brighter for transparent terminals
"set textwidth=80 " Place automatic text breaks Enable Chinese encoding support
set encoding=euc-cn
if v:lang =~ "^zh_CN"
set fileencodings=gb2312
set showmatch " Show matching brackets
set incsearch " Incremental Search
"set autowrite " Automatically save file before :next and : prev
"set nowrap " Do not wrap text
set smartcase " Search case-sensitively when capitalized letter found in pattern
set nobackup " Don't keep a backup file
set showcmd " Show (partial) command in status line
linux的vi命令不能保存中文,在当前用户目录新建.vimrc文件,文件内容如下,即可编辑保存中文
---------------------如下---------------------
set nocompatible " Use Vim defaults (much better!)
set ts=4 " Set TAB Stop
set shiftwidth=4 " Set shift width in programming
set textwidth=0 " Don't wrap words by default
set ignorecase " Ignore case in searching
set guifontset=*-r-* " You may change the font to your like
endif
" Switch syntax highlighting on, when the terminal has colors
" Also switch on highlighting the last used search pattern.
if &t_Co > 2 || has("gui_running")
syntax on
set hlsearch
endif
"set nohlsearch "If you do not like highlighting search pattern
set bs=indent,eol,start " Allow backspacing over everything in insert mode
set ai " Always set auto-indenting on
"set backup " Keep a backup file
set viminfo='20,\"500 " read/write a .viminfo file -- limit regs to 500 lines
相关文档
最新文档