ESC : 进入命令模式

linux下使用vi后,怎样跳转到文件结尾

pagedown键连续按
虽然我也这么用,但还是太笨了。问了高手,方法是按shift+g,另外,到文件开头是gg。
 
linux vi查找命令
 
div id="article_content" class="article_content">
 
使用vi编辑器编辑长文件时,常常是头昏眼花,也找不到需要更改的内容。
 
这时,使用查找功能尤为重要。
 
方法如下:  www.2cto.com  
 
1、命令模式下输入“/字符串”,例如“/Section 3”。
 
2、如果查找下一个,按“n”即可。
 
要自当前光标位置向上搜索,请使用以下命令:
 
/pattern Enter
 
其中,pattern表示要搜索的特定字符序列。
 
要自当前光标位置向下搜索,请使用以下命令:
 
?pattern Enter
 
按下 Enter键后,vi 将搜索指定的pattern,并将光标定位在 pattern的第一个字符处。
例如,要向上搜索 place一词,请键入:
  www.2cto.com  
 
vi 查找替换大全
 
vi/vim 中可以使用 :s 命令来替换字符串。以前只会使用一种格式来全文替换,今天发现该命令
有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询。
 
:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
 
:s/vivian/sky/g 替换当前行所有 vivian 为 sky
 
:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
 
:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
 
n 为数字,若 n 为 .,表示从当前行开始到最后一行
 
:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
 
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
 
可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
 
:s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/
 
:%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/  www.2cto.com  
 
1.:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
 
:s/vivian/sky/g 替换当前行所有 vivian 为 sky
 
2. :n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
 
:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
 
(n 为数字,若 n 为 .,表示从当前行开始到最后一行)
 
3. :%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
 
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
 
4. 可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
 
:s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/
 
5. 删除文本中的^M
 
问题描述:对于换行,window下用回车换行(0A0D)来表示,Linux下是回车(0A)来表示。这样,将window上的文件拷到Unix上用时,总会有个^M.请写个用在unix下的过滤windows文件的换行符(0D)的shell或c程序。  www.2cto.com  
 
· 使用命令:cat filename1 | tr -d “^V^M” > newfile;
 
· 使用命令:sed -e “s/^V^M//” filename > outputfilename。需要注意的是在1、2两种方法中,^V和^M指的是Ctrl+V和Ctrl+M。你必须要手工进行输入,而不是粘贴。
 
· 在vi中处理:首先使用vi打开文件,然后按ESC键,接着输入命令:%s/^V^M//。
 
· :%s/^M$//g
 
如果上述方法无用,则正确的解决办法是:
 
· tr -d "\r" < src >dest
 
· tr -d "\015" dest
 
· strings A>B
 
6. 其它
 
利用 :s 命令可以实现字符串的替换。具体的用法包括:
 
:s/str1/str2/ 用字符串 str2 替换行中首次出现的字符串 str1
 
:s/str1/str2/g 用字符串 str2 替换行中所有出现的字符串 str1
  www.2cto.com  
:.,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1
 
:1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串 str1
 
:g/str1/s//str2/g 功能同上
 
从上述替换命令可以看到:g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索
 
字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。
 
VI 的保存退出
 
Vi是一种广泛存在于各种UNIX和Linux系统中的文本编辑程序。 2.Vi不是排版程序,只是一个纯粹的文本编辑程序。 3.Vi是全屏幕文本编辑器,它没有菜单,只有命令。
4.Vi不是基于窗口的,所以,这个多用途编辑程序可以用于在任何类型的终端上编辑各式各样的文件。
5.Vi的功能十分强大,但是命令繁多,熟练掌握起来有一定难度。 6.Vi的发明者:bill joy 
Vi的启动
 $ Vi  filename  或者$ Vi
如果filename已经存在,Vi会打开现存文件 如果是一个新文件,Vi会创建它 
Vi的退出
在命令行模式下输入:q,:q!,:wq或者:x,可以退出Vi
 :w                  保存
 :w filename         另存为filename
:wq!                保存并退出
:wq! filename       以filename为文件名保存后退出 :q!                 不保存退出
 :x                  保存并退出,功能和:wq!相同 
Vi的工作模式
 Vi有三种工作模式,分别为:命令模式、插入模式(编辑模式)和末行模式,三种模式分别进行不同的操作,它们之间可以进行切换。 1.命令模式:进入Vi后,首先进入的就是命令模式,等待用户输入编辑命令,此时输入的字母将作为编辑命令来解释。
2.插入模式:在命令模式下输入插入命令i、附加命令a、打开命令o等命令可以进入插入模式,在插入模式下,用户输入可以对文本进行编辑,输入的任何字符都被当作文件内容保存起来。【Esc】键可以返回命令模式。
3.末行模式:在命令模式下,按【:】键可以进入末行模式,Vi光标会显示在窗口的最后一行,以“:”作为末行模式的提示符,等待用户输入命令。末行命令执行后,Vi自动回到命令模式。 
Vi命令大全  1、移动光标
 h或者向左方向键:光标向左移动一个字符  l或者向右方向键:光标向右移动一个字符
 k或者向上方向键:光标向上移动一个字符  j或者向下方向键:光标向下移动一个字符
【Ctrl】+f:屏幕“向下”移动一页,相当于【PageDown】
【Ctrl】+b:屏幕“向上”移动一页,相当于【PageUp】  0:数字0,移动到这一行的最前面一个字符处  $:移动到这一行的最后一个字符处  G:移动到这个文件的最后一行 gg:移动到这个文件的第一行
 n【Enter】:         n是一个数字,光标向下移动n行 
2、搜索与替换
 /str:从光标开始,向下寻找一个名为str的字符串。  ?str:从光标开始,向上寻找一个名为str的字符串。
:n1,n2s/str1/str2/g:n1与n2为数字,在第n1行与n2行之间寻找str1         这个字符串,并将该字符串替换成str2
 
:1,$s/str1/str2/g:从第一行到最后一行寻找str1字符串,并将该字符串替换为str2 
:1,$s/str1/str2/gc:从第一行到最后一行寻找str1字符串,并将该字符串替换为str2,且在替换前提示符给用户确认是否需要替换 
3、删除、复制与粘贴
 x,X:x为向后删除一个字符,X为向前删除一个字符 nx:n为数字,为连续向后删除n个字符
dd:删除光标所在的那一整行
ndd:n为数字,从光标位置开始,删除向下n列,如20dd则是删除20列。 yy:复制光标所在的那一行
nyy:n为数字,复制光标所在的向下n行,如20yy则是复制20行  p,P:p为将复制的数据粘贴到光标的下一行,P则为粘在光标的上一行。  u:复原前一个操作
【Ctrl】+r:重做上一个操作
 .:小数点,重复前一个动作,常用在重复删除、重复粘贴。 
4、插入模式
 i,I:插入:在当前光标所在处插入输入文字,已存在的文字会向后退,其中i为从当前光标所在位置前开始插入,I将光标移到当前行的行首,然后开始插入。 
a,A:a为从当前光标所在的下一个字符开始插入,A为从光标所在行的最后一个字符处开始插入 
o,O:这是英文字母o的大小写,o为在当前光标所在的下一行插入新的一行,O为在当前光标所在处的上一行插入新的一行。
 r,R:替换:r为替换光标所在的那一个字符;R会一直替换光标所在的文字,直到安下【Esc】键为止。 
5、文件操作相关
 :w:保存文件
 :w filename:另存为filename
 :n1,n2 w filename!:将n1行到n2行的内容保存到filename中  :n w filename:将第n行保存到filename中
 :l,. w filename:将从第一行起到光标当前位置的内容保存到        filename中 :.,$ w filename:将从光标当前位置到文件结束的内容保存到                 filename中
 :r filename:打开另外一个文件filename
 :e filename:编辑新文件filename代替原有内容  :f filename:把当前文件改名为filename
 

linux下使用vi操作的更多相关文章

  1. linux下的shell操作mysql

    (1)MySQL的启动 重启了一次服务器后,使用> mysql -u root -p登陆是出现下面的错误: ERROR 2002 (HY000): Can't connect to local ...

  2. windows下编辑过的文件在Linux下用vi打开行尾会多出一个^M符号

    一般情况下,windows下编辑过的文件在Linux下用vi打开行尾会多出一个^M符号,如下图: 这是因为Windows等操作系统用的文本换行符和UNIX/Linux操作系统用的不同,Windows系 ...

  3. linux下的文本操作之 文本查找——grep

    摘要:你有没有这样的应用场景:调试一个程序,出现debug的提示信息,现在你需要定位是哪个文件包含了这个debug信息,也就是说,你需要在一个目录下的多个文件(可能包含子目录)中查找某个字符串的位置: ...

  4. linux下通过sysfs操作GPIO

    linux下通过sysfs操作GPIO 在嵌入式设备中对GPIO的操作是最基本的操作.一般的做法是写一个单独驱动程序,网上大多数的例子都是这样的.其实linux下面有一个通用的GPIO操作接口,那就是 ...

  5. Linux下常用的操作

    Linux下常用的操作 文件定位 locate filename 有些版本的linux会出现 -bash: locate: command not found错误,不要慌,安装一下mlocate包就好 ...

  6. Linux下mysql相关操作

    Linux下mysql相关操作 1.创建MySQL mysql -u root -p create user 'username'@'%' identified by 'password'; %可以选 ...

  7. Linux下 svn相关操作

    Linux下 svn相关操作 一.首先看看svn安装的位置: 命令: find / -name svn /var/svn :表示安装目录 /user/bin/svn :表示命令目录 可以看到的是svn ...

  8. linux下的一些操作(持续更新)

    文件操作 创建文件夹: mkdir 文件夹名称 查看当前目录的文件夹及文件:ls 参看当前文件夹下的所有文件及信息: ls -l 删除空文件夹:rmdir 文件夹名称 删除非空文件夹:rm rf 文件 ...

  9. 使用linux下的C操作SQLLITE

    from: http://baike.so.com/doc/1529694.html 由于Linux下侧重使用命令,没有win的操作容易上手,所以在测试C操作SQLITE时会比较容易出现错误,给大家做 ...

随机推荐

  1. Swift - 本地数据的保存与加载(使用NSCoder将对象保存到.plist文件)

    下面通过一个例子将联系人数据保存到沙盒的“documents”目录中.(联系人是一个数组集合,内部为自定义对象). 功能如下: 1,点击“保存”将联系人存入userList.plist文件中 2,点击 ...

  2. 分享一些免费的,开源的邮件server软件

    因为企业的须要,我们非常可能须要架设一个邮件server,微软的Exchange太复杂?GOOGLE出来的又收费!头大了吧,OK,贾芸斐在这里给大家分享推荐几个免费的开源的邮件server软件.希望你 ...

  3. flex中在basewidget中不能使用图表组件问题

    参考 http://blog.sina.com.cn/s/blog_51e3d0e70101hljz.html

  4. Win32环境下的程序崩溃异常定位

    1       案例描述 作为Windows程序员,平时最担心见到的事情可能就是程序发生了崩溃(异常),这时Windows会提示该程序执行了非法操作,即将关闭.请与您的供应商联系.呵呵,这句微软的“名 ...

  5. CF 17B Hierarchy

    Nick's company employed n people. Now Nick needs to build a tree hierarchy of «supervisor-surbodinat ...

  6. c#调用语音功能

    转自 http://www.cnblogs.com/Hans2Rose/p/WeatherSpeaker.html .Net里面自带了一个语音类库:System.Speech,调用系统的语音功能,就能 ...

  7. 辛星PHP教程之yii和ci教程已经写完,望与朋友们交流

     记得有个朋友给我说,你写的PHP框架是不是过于少了.我感觉仅仅有一个thinkphp确实不好,于是就又写了下yii和ci的教程,事实上我之前是研究过这两个框架的,因此写起来也还算得心应手吧.估计接下 ...

  8. Android UI布局TableLayout

    了解字面上TableLayout一个表格样式布局.这种布局将包括以行和列的形式的元件被布置.表格列的数目是列的各行中的最大数目.当然,表格里面的单元格它能够清空. 实例:LayoutDemo 执行效果 ...

  9. thinkPHP 模板中的语法知识 详细介绍(十二)

    原文:thinkPHP 模板中的语法知识 详细介绍(十二) 本章节:介绍模板中的语法,详细的语法介绍 一.导入CSS和JS文件    ==>记住常量的是大写 1.css link .js  sc ...

  10. UVAlive 2519 Radar Installation (区间选点问题)

    Assume the coasting is an infinite straight line. Land is in one side of coasting, sea in the other. ...