linuxvi搜索
㈠ linux shell中在vi打开的文件中查找关键字
linux shell中使用vi命令打开文本文件后,如果需要查找字符
从开头搜索
在命令模式下,输入 / 你要查找的字符
按下回车,可以看到vim把光标移动到该字符处
再按n(小写)查看下一个匹配
按N(大写)查看上一个匹配(capslock切换大小写,也可以在小写状态下按shift+n)
从结尾处搜索
?要搜索的字符串或字符
搜索后,打开别的文件发现也被高亮了,怎么关闭?
命令行模式下,输入:nohlsearch或者:set nohlsearch
可以简写成noh喝set-noh
㈡ Linux vi 查找字符串时如何排除不想要的
/abc$ 即可,这就是以abc结尾的字符,要以abc开头的话那就用 /^abc;你去学下正则表达式即可
㈢ Linux如何在vi里搜索关键字
在命令模式下敲斜杆( / )这时在状态栏(也就是屏幕左下脚)就出现了 “/” 然后输入你要查找的关键字敲回车就可以了。
如果你要继续查找此关键字,敲字符 n 就可以继续查找了。
㈣ linux下vim 查找命令
基础搜索
先必须知道vim的3中工作模式
智能大小写搜索
Vim 提供了一个功能,只有当要搜索的单词 / 模板包含大写字母时,编辑器才会区分大小写。要想实现这种功能,必须先设置ignorecase,再接着设置smartcase变量。
:set ignorecase
:set smartcase
例如,如果一个文件中既包含LINUX也包含linux,在开启智能大小写搜索功能时,如果使用/LINUX进行搜索,只有单词LINUX处会被搜到。反之,如果搜索/linux,那么不论大小写的搜索结果都会被匹配。
㈤ linux系统下 vi文本编辑器搜索单词打什么命令
vi文本编辑器搜索
简单搜索
"/string"用于向下搜索一个字符串,按n按照搜索相同的方向跳转到下一个匹配项,像一般的命令一样,前面加上数字,标示命令计数,比如"2n"代表第三个匹配的目标。按N会和之前命令想法的方向就像搜索下一个。
"?string"用于反向向上搜索字符转,n,N的用法同上。
搜索忽略大小写
:set ignorecase
设置大小写区分
:set noignorecase
命令记录
假设你做过三次的搜索
/one
/two
/there
现在你想再次的重复搜索one,不需要自己输入全部的字符串"/one"
利用命令的记录功能,只需要输入"/"按后通过方向键选择记录,如上,按三次向上方向键即可得到"/one",同样,你可以输入"/o"按后按向上方向键,即可自动匹配第一个以o开头的命令记录。(在:命令模式下,此方法相同使用,命令记录不相混淆)
当你要键入的单词太长时,你可以将光标移到你要搜索的单词上,在普通模式下,按下*键,即可以当前词为搜索向下搜索,#则向上搜索。这种方法上的单词完全匹配,如果你要搜素的字符串可能还包含在一个其他长字符串里面,可以使用g*,g#进行搜索。
在本行搜索某一个字符
fx 在当前行,向前将光标移动到字符x上
Fx 在当前行,向后将光标移动带字符x上
tx 在当前行,向前将光标移动到字符x之前的字符上
Tx 在当前行,向后将光标移动到字符x之后的字符上
, 按照上次搜索(f,F,t,T)的反向进行搜索
; 重复上次搜索
使用"/the"会搜索到there,soothe,the,athea
可以通过不同的方法匹配不同的搜索
"/the/>" 得到结果there
"//<the" 得到结果soothe
"//<the/>" 得到结果the
"/>"是一特殊记法,只匹配一个Word的结束处
"/<"是一特殊记法,只匹配一个Word的开始处
高亮显示搜索结果
将搜索的家国高亮显示,将十分的直观
开启:set hlsearch
关闭:set nohlsearch
调整搜索结果
:set incsearch 这使得你在键入目标字符的时候vim就开始搜索,使用这种方法,可以使你在未完全输入目标的情况下就可以找到一些结果
使用正则表达式
^字符匹配一行的开头
$字符匹配一行的结尾
eg:
将光标移动到下面一句话的第一个the上,输入*
the solder holding one of the chips melted and the
XXX XXX XXX(搜索高亮标记)
输入"/thetiny_mce_markerquot;得到以下匹配结果
the solder holding one of the chips melted and the
XXX(搜索高亮标记)
输入"/^the"则得到以下结果
the solder holding one of the chips melted and the
XXX (搜索高亮标记)
同理输入"/^thetiny_mce_markerquot;将匹配一行内容仅含the的行
/jo[ha]n 将搜索john或者joan
.字符可以匹配任意字符
eg:
"/t.e" 将搜索匹配the tee等
(如果你要搜索的字符串里包含特殊字符,比如.则适应转义字符/房子特殊字符前面)
"//<..../>" 将搜索任何四个字母的字符串
/d代表一个数字
//d 搜索数字 a1a
//</d/> 搜索作为独立单词的一个数字 1
//</d/d/> 搜索作为独立单词的两个数字 12
/^$ 搜索空白行
/^/n 同上
--------
指定重复的次数
--------
要制定重复的次数,可以使用"/{n,m}"这样的形式。"n"和"m"代表数字,其前的项目会被匹配"n"次到"m"次
/^/n/{3} 搜索三个空白行
/ab/{{3,5} 匹配"abbb","abbbb","abbbbb"
如果"n"被忽略,就默认它是0,如果"m"忽略,就默认它是无穷大,如果",m"被忽略,那么精确匹配"n"次重复
/{,4} 0,1,2,3,4次
/{3,} 大于等于3次
/{3,4} 3,4次
/{4} 4次
/= 0或者1
* 0或者多次
/+ 一次或者多次
--------
多选一
--------
在一个操作中的"或"操作符是"/|"。如:
/fred/|joe 将搜索fred或者joe
多个选项能继续串联在一起
/one/|two/|three
/end/(if/|while/|for/) 匹配的是"endif","endwhile","endfor"
--------
字符范围
--------
[a-z] a到z中的一个字符
[^a-z] 除了a到z中的一个字符
预定义字符集
//a 所有字母 /[a-zA-Z]
//d 数字 /[0-9]
//D 非数字 /[^0-9]
//x 十六进制数 /[0-9a-fA-F]
//X 非十六进制数 /[^0-9a-fA-F]
//s 空白字符 /[ ]
//S 非空白字符 /[^ ]
//l 小写字母 /[a-z]
//L 非小写字母 /[^a-z]
//u 大写字母 /[A-Z]
//U 非大写字母 /[^A-Z]
//h /[A-Za-z]
//w /[0-9A-Za-z]
㈥ Linux之vi命令
vi profile
返回
:q 退出
:wq或者:x或者shift+zz 保存并退出
:q! 不保存并退出
:w 保存
:w! 强制保存
编辑到输入模式:
i 在当前光标前面输入
I 在当前光标所在行的行首,转换为输入模式
a 在当前光标后面输入
A 在当前光标所在行的行尾,转换为输入模式
o 在当前光标所在行的下方,新建一行,并转为输入模式
O 在当前光标所在行的上方,新建一行,并转为输入模式
1、 移动光标
字符:方向键上下左右或者键盘kjhl(上下左右)
单词:w移至下一个单词的词首;e跳至当前或下一个单词的词尾;b跳至当前或前一个单词的词首
行内:0绝对行首;^行首的第一个非空白字符;$绝对行尾
行间:G文章末尾;3G第3行;gg文章开头
翻屏:ctrl f【往后翻】;Ctrl b【往前翻】
2、 删除、替换单个字符
x删除光标位置字符;3x删除光标开始3个字符;r替换光标位置字符
dw删除一个单词;4dw删除光标开始的4个单词;dd删除光标所在行;5dd删除光标开始的5行
3、复制粘贴剪切
yw复制一个单词,p在该行粘贴单词;yy复制整行,p在该行下方粘贴整行
dd剪切整行,p再粘贴整行;dw剪切一个单词,p再粘贴一个单词
4、 撤销&重做
u:撤销;ctrl+r:重做撤销的操作;.重复上一步的操作【假设先dd,再.,会再执行dd命令】
1、 set设置
set nu
set nonu
set readonly #设置只读文件,不能修改,只在当前环境有效,退出文件,再次打开,这个只读就无效了
set noreadonly #取消只读
2、 /查找
/after查找文档中的after【可以找到所有的after】,n向下翻,N向上翻
:/after查找文档中的after所在行【可以找到所有的after】,n向下翻,N向上翻
3、!执行命令
比如:查找root目录
:!ls /root/
4、 查找并替换
格式
【 :查找范围s/查找的词/要替换的词/ 】
或者【:查找范围s#查找的词#要替换的词# 】
或者【:查找范围s%查找的词%要替换的词%】,
即分隔符可以是/、#、%
其中, 查找范围 包括【.当前光标行】;【$末尾行】;【%全文】;【g一行内全部替换】;【i忽略大小写】
比如 【 :.,$s/after/before/】 表示在当前光标行【.】到末尾【$】这个范围内,将after替换为before, 但是如果一行有多个after的话,只会把第一个after替换掉 。
比如 【 :%s/after/before/】 表示在全文,将after替换为before,但是如果一行有多个after的话,只会把第一个after替换掉。
比如 【:%s/after/before/g】 ,表示在全文,将after替换为before,但是 如果一行有多个after的话,会把该行所有after替换掉,因为在命令里面加了g 。
比如 【:%s/after/before/gi】 ,表示在全文,将after替换为before,且忽略大小写并替换一行内所有after。
比如 【 :%d或者dG】 ,表示删除全文
比如 【:1,$-4d】 ,表示删除第一行到倒数第5行的数据
比如 【:1,4y】 ,表示复制1到4行,再按p可粘贴这4行
㈦ linux下vim 查找命令
linux下vim查找命令:
/text--查找text,按n查找下一个,N查找上一个
?text--查找text(反向查找),按n查找下一个,N查找上一个
*/#--查找光标当前的单词,相当于/text
:setignorecase--查找忽略大小写
:setnoignorecase--查找不忽略大小写
:nohlsearch--关闭当前的高亮显示,当再次查找时恢复高亮
:setincsearch--逐步搜索模式,对当前键入的字符进行查找,不必等输入完成
:setwrapscan--重新搜索,当搜索到文件头或尾时,返回重新搜索
(7)linuxvi搜索扩展阅读:
1、文件窗口:
:openfile--在当前窗口打开新文件
:splitfile--在新窗口打开文件
:newfile--用新窗口打开文件,同:splitfile
:bn--切换到下一个文件
:bp--切换到上一个文件
:args--查看当前打开的文件列表(当前正在编辑的文件会用[]括起来)
:eftp://192.168.10.76/abc.txt
:eqadriveest.txt--打开远程文件
:split--打开一个新窗口,光标停在顶层的窗口上
:new--打开一个新窗口,光标停在顶层的窗口上
:vsplit--横向打开窗口。
Ctrl+ww--移动到下一个窗口
Ctrl+wj--移动到下方的窗口
Ctrl+wk--移动到上方的窗口
2、其他命令:
Esc/Ctrl+[--键入命令
:!command--执行shell命令
:suspend/Ctrl+Z--挂起vim,回到shell,fg返回vim
:!perl-cscript.pl--检查perl脚本语法,不用退出vim
:!perlscript.pl--执行perl脚本,不用退出vim
:help--显示帮助文档
:helpi--显示i的帮助文档(:特殊键用<>,-t:启动参数用-)
3、编辑命令:
插入:
i--在当前位置插入
A--在当前行尾插入
I--在当前行首插入
o--在当前行后插入一行
O--在当前行前插入一行
拷贝粘贴剪切:
yy--拷贝当前行
2yy--拷贝当前行开始的2行
p--在当前光标后粘贴
P--在当前行前粘贴
:1,10co20--将1-10行插入到第20行之后。
:1,$co$--将整个文件复制一份并添加到文件尾部
v--进入选择模式,相当于在Windows下按住Shift选择
V--进入选择模式,整行选择
ddp--交换当前行和其下一行
2dd--剪切当前行之后的2行
:1,10d--将1-10行剪切
:1,10m20--将第1-10行移动到第20行之后
替换:
ra--将当前光标所在字符替换为a
s/old/new/--用old替换new,替换当前行的第一个匹配
s/old/new/g--用old替换new,替换当前行的所有匹配
%s/old/new/--用old替换new,替换所有行的第一个匹配
%s/old/new/g--用old替换new,替换所有匹配
:10,20s/^/text/g--在第10行到第20行每行前面加上text(:3,5s/^/#/g--注释3-5行,:3,5s/^#//g
--解除3-5行的注释,:1,$s/^/#/g--注释整个文档,:%s/^/#/g--注释整个文档)
ddp--交换光标所在行和下一行
移动:
h--左移一个字符(5h--左移5个字符)
l--右移一个字符(5l--右移5个字符)
k--上移一个字符(5k--上移5个字符)
j--下移一个字符(5j--下移5个字符)
w--向后移动一个单词(5w--向后移动5个单词)
b--向前移动一个单词(5b--向前移动5个单词)
e--同w,光标停在单词尾部
ge--同e,光标停在单词尾部
^--移动到本行第一个非空白字符
0--移动到本行第0个字符
--同0
$--移动到行尾(3$--移动到下面3行的行尾)
gg--移动到文件头(10gg--移动到第10行首)
[[--同gg
G--移动到文件尾(10G--移动到第10行尾)
]]--同G
fx--移动到本行光标后第一个为x的字符(3fx--移动到本行光标后第3个为x的字符)
Fx--同fx,反向查找
:20--跳到20行行首
Ctrl+e--向下滚动一行
Ctrl+y--向上滚动一行
Ctrl+d--向下滚动半屏
Ctrl+u--向上滚动半屏
Ctrl+f--向下滚动一屏
Ctrl+b--向上滚动一屏
撤销:
u--撤销
U--撤销对整行的操作
Ctrl+r--撤销刚才的撤销
删除:
x--删除当前字符(3x--删除当前光标开始向后三个字符)
X--删除当前字符的前一个字符,同dh
dl--删除当前字符,同x
dh--删除前一个字符
dd--删除当前行
dj--删除上一行
dk--删除下一行
10d--删除当前行开始的10行。
D--删除当前字符至行尾,同d$
kdgg--删除当前行之前所有行(不包括当前行)
:1,10d--删除1-10行
:11,$d--删除11行及以后所有的行
:1,$d--删除所有行
J--删除两行之间的空行,合并两行
退出
:wq--保存并退出
ZZ--保存并退出
:q!--强制退出并忽略所有更改
:e!--放弃所有修改,并打开原来文件
:close--关闭窗口,最后一个窗口不能使用此命令,可以防止意外退出vim
:q--如果是最后一个被关闭的窗口,那么将退出vim