linux下使用vi操作
ESC : 进入命令模式
linux下使用vi后,怎样跳转到文件结尾
pagedown键连续按
虽然我也这么用,但还是太笨了。问了高手,方法是按shift+g,另外,到文件开头是gg。
例如,要向上搜索 place一词,请键入:
有很多种写法(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操作的更多相关文章
- linux下的shell操作mysql
(1)MySQL的启动 重启了一次服务器后,使用> mysql -u root -p登陆是出现下面的错误: ERROR 2002 (HY000): Can't connect to local ...
- windows下编辑过的文件在Linux下用vi打开行尾会多出一个^M符号
一般情况下,windows下编辑过的文件在Linux下用vi打开行尾会多出一个^M符号,如下图: 这是因为Windows等操作系统用的文本换行符和UNIX/Linux操作系统用的不同,Windows系 ...
- linux下的文本操作之 文本查找——grep
摘要:你有没有这样的应用场景:调试一个程序,出现debug的提示信息,现在你需要定位是哪个文件包含了这个debug信息,也就是说,你需要在一个目录下的多个文件(可能包含子目录)中查找某个字符串的位置: ...
- linux下通过sysfs操作GPIO
linux下通过sysfs操作GPIO 在嵌入式设备中对GPIO的操作是最基本的操作.一般的做法是写一个单独驱动程序,网上大多数的例子都是这样的.其实linux下面有一个通用的GPIO操作接口,那就是 ...
- Linux下常用的操作
Linux下常用的操作 文件定位 locate filename 有些版本的linux会出现 -bash: locate: command not found错误,不要慌,安装一下mlocate包就好 ...
- Linux下mysql相关操作
Linux下mysql相关操作 1.创建MySQL mysql -u root -p create user 'username'@'%' identified by 'password'; %可以选 ...
- Linux下 svn相关操作
Linux下 svn相关操作 一.首先看看svn安装的位置: 命令: find / -name svn /var/svn :表示安装目录 /user/bin/svn :表示命令目录 可以看到的是svn ...
- linux下的一些操作(持续更新)
文件操作 创建文件夹: mkdir 文件夹名称 查看当前目录的文件夹及文件:ls 参看当前文件夹下的所有文件及信息: ls -l 删除空文件夹:rmdir 文件夹名称 删除非空文件夹:rm rf 文件 ...
- 使用linux下的C操作SQLLITE
from: http://baike.so.com/doc/1529694.html 由于Linux下侧重使用命令,没有win的操作容易上手,所以在测试C操作SQLITE时会比较容易出现错误,给大家做 ...
随机推荐
- vs2005及以上版本的程序分发问题
我们使用vs2005及以上版本编译的应用程序(C/C++),在客户机器运行时,会出现: “由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题” 那么,我们怎么解决这个问题呢 ...
- UVa 11371 - Number Theory for Newbies
題目:給你一個數字n.將裡面每位的數又一次組合形成a,b.使得a-b最大且是9的倍數. 分析:數論. 題目要求a,b和n的位數同样,不能有前導0. 定理1:交換一個數字中的某兩個位的數,形成的新數組和 ...
- 【MySQL案例】HA: GTID_MODE配置不一致
1.1.1. HA: GTID_MODE配置不一致 [环境描写叙述] msyql5.6.14 [报错信息] 初始状态Master和Slave都开启了enforce-gtid-consistency和g ...
- JAVA泛型之<? extends T>:(通配符上限)和<? super T>(通配符下限)
一.通配符上限和通配符下限接受的类型 通配符上限:<? extends T> 通配符下限:<? super T> 以下代码是测试结果,注释为解释说明 package xayd. ...
- Codeforces Round #350 (Div. 2)解题报告
codeforces 670A. Holidays 题目链接: http://codeforces.com/contest/670/problem/A 题意: A. Holidays On the p ...
- 《转》Python多线程学习
原地址:http://www.cnblogs.com/tqsummer/archive/2011/01/25/1944771.html 一.Python中的线程使用: Python中使用线程有两种方式 ...
- Java 建立mysql数据库连接的语句
每次在面试时被问到jdbc的数据路链接过程都卡着,这次不怕了,背会了... 第一个,比较粗糙的 try{ Class.forName("com.mysql.jdbc.Driver&quo ...
- 【C语言天天练(二四)】内存分配
引言: 对于C语言程序,了解它执行时在内存中是怎样分配的对于我们理解它的执行机制是很实用的.以下就总结一下C语言程序的一些内存分配知识. 一 一段C程序.编译连接后形成的可运行文件一般有代码段.数据段 ...
- leetcode day6 -- String to Integer (atoi) && Best Time to Buy and Sell Stock I II III
1. String to Integer (atoi) Implement atoi to convert a string to an integer. Hint: Carefully con ...
- Amazon.com: NEW VI AND VIM EDITOR KEYBOARD STICKER: Office Products
Amazon.com: NEW VI AND VIM EDITOR KEYBOARD STICKER: Office Products NEW VI AND VIM EDITOR KEYBOARD S ...