繁体中文  设为首页  加入收藏 
当前位置:学院首页 >> 入门 >> 电脑知识 >> Linux指令大全 vi指令


Linux指令大全 vi指令 (3)

2008-04-25 13:41:49  www.hackbase.com  来源:互联网
vi大全 xp 交换两个字符位置 ddp 上下两行调换 J 上下两行合并 dG 删除所有行 d$ 从当前位置删除到行尾 y$ 从当前位置复制到行尾, 如果要粘贴到其他地方 p 就可以了 :ab string strings 例如 ":ab usa Unit ...

其他特殊用法:
用q: 看一看有什么
用? 可以编辑你用过的命令
程序中在一个调用函数(如:printf)上用K,可以直接调出printf的帮助

ctrl+f向下翻页,ctrl+b向上翻页(对于telnet上去的时候比较有用)


1. vi中设置tab键的空格数:
:set ts=4
:set sw=4
将此两句话加到当前用户目录的文件.vimrc中,这样当前用户用vi的时候就会启动该设置

2.拷贝:
将第2行到第9行的字copy到第11行
:2,9 co 10
将第2行到第9行的字move到第11行
:2,9 m 10

3.设置行号:
:se nu
取消行号:
:se nonu

4.当前行与下一行换位置:ddp

5.当前字与后面的字换位置:xp


用vi替换文件中的字符串

  在vi界面下使用命令
  :%s#/usr/bin#/bin#g
  可以把文件中所有路径/usr/bin换成/bin。也可以使用命令:
  :%s/usr/bin/bin/g
  其中“”是转义字符,表明其后的“/”字符是具有实际意义的字符,不是分隔符。


请问 vi 中的删除缓冲区是怎么回事?

看到有一个资料说到:
“vi还有有编号的删除缓冲区。撤消命令只能恢复上一次的删除,当且仅当这个删除是最后一次操作。但是,vi可以把最近9次删除的内容都放入9个编号从1到9的缓冲区内。最近一次删除保存在缓冲区1,次近的在缓冲区2,依此类推。例如,"2p可以放置第二个删除缓冲区中的内容。”
但是我没有操作成功,请教各位。


既然是vi的问题,我义不容辞

准备文件test
1
2
3
4
5

将光标定位在5上,连按5次dd
然后键入
"5p
"4p
"3p
"2p
"1p
看看发生了什么

明白了?


要注意"

谢谢你们的解释!
再问,是否只有删除的整行可以保存在删除缓冲区中?比如删除的字符呢?

字符也可以,用整行只是为了让你好学
自己试试吧,找葫芦画瓢吧

wo 我照呢说得作的 可是恢复的是5个1 啊 怎么回事 (solaris8)

比如在一行中连按5次dw,会将5个词依次放入1~5的寄存器中吗?我没有试验成功,总提示寄存器为空。

[这个贴子最后由goodboy在 2002/08/22 09:29am 编辑]

bjchenxu,能否把VI使用高级技巧的方法给大家讲一讲呀:)
很多的,比如:怎么一个文件中的几行保存到另外一个文件中了,
或者把另外一个文件的插入到指定内容的行后面了或者我在vi中拷贝
A文件的某5行(Esc下5yy拷贝),然后再:e b文件,怎么把A文件的5行拷过来?
然后又怎么回到原先的A文件中?


高级技巧太多太多,建议大家找本版valentine斑竹要书看,呵呵
你说的几个问题我先回答一下:
1. 将一个文件中的几行保存到另外一个文件中了
1.1 $vi file1
1.2 :3,5 y a
1.3 :e file2
1.4 "ap

2. 将另外一个文件插入到指定内容的行后面
2.1 $vi file1
2.2 :/regularexpress/ r file2

3. 两个文件的切换和拷贝
3.1 $vi file1 file2
3.2 :3,5 y a
3.3 :e#
3.4 "ap
3.5 :e#

在vim里面查看man页面

在进入vim后按“:”号,输入
source $VIMRUNTIME/ftplugin/man.vim
然后再按“:”号,输入
nmap K :Man
然后在vim里面输入你要的命令,在这个命令上按K,就可以看到经vim处理过后的man页。

用vi在整个文件的各行或某几行的行首或行尾加一些字符串

  $vi file
  :3,$s/^/some string 在文件的第一行至最后一行的行首插入“some string”。
  :%s/$/some string/g 在整个文件每一行的行尾添加“some string”。
  :%s/string1/string2/g 在整个文件中替换“string1”成“string2”。
  :3,7s/string1/string2/ 仅替换文件中的第3行到第7行中的“string1”成“string2”。
  注意: 其中s为substitute,%表示所有行,g表示global。

用vi删除大段的内容

  首先利用编辑命令“vi file”打开文件, 然后将光标移到要删除的行处按Ctrl+G显示行
号,再到结尾处再按Ctrl+G,显示文件结尾的行号。
  例如:
  :23,1045d
  假定2次得到的行号为23和1045,则把这期间的内容全删除, 也可以在要删除的开始行和
结束行中用ma、mb命令标记,然后利用“:'a,'bd”命令删除。

用vi实现“另存为”功能
  $vi file
  :w /tmp/1
  保存所做的所有修改,也可以将其中的某一部分修改保存到临时文件。
  如果仅仅把第20~59行之间的内容存盘成文件/tmp/1,我们可以键入如下命令:
  :20,59w /tmp/1

用vi在一个新文件中读其他文件的内容
  $vi file
  :r /etc/passwd 在打开的文件file中光标所在处读入/etc/passwd
  :%s/:.*//g 删除/etc/passwd中用户名后面的从冒号开始直到行尾的所有部分。
  您也可以在指定的行号后读入文件内容,例如使用命令:
  :3r /etc/passwd
  从新文件的第3行开始读入 /etc/passwd的所有内容。
  我们还可以使用以下方法删掉文件中所有的空行及以#开始的注释行。
  $cat squid.conf.default | grep -v '^$' | grep -v '^#'

用vi拷贝一个文件中的文本并粘贴到另一个文件中
  $vi file1 file2
  然后在vi界面下:
  yy <-在文件1的光标处拷贝所在行
  :n <-切换到文件2 (n=next)
  p <-在文件2的光标所在处粘贴所拷贝的行
  :n <-切换回文件1

使用vim对被编辑文件加密
  在VIM当中要对所编辑的文件进行简单加密,可以在命令行模式下键入“:X”(无括号,
只有冒号和X)然后在提示“Enter the encrypt key”时输入口令字串就可以加密了。但是别
忘了要保存哦!保存的时候会发现在屏幕底部有“[crypted]”这样的字样。 下次打开该加密
文件会要求您输入口令字串,这个总该记得的吧?

设置vim自动显示行号
  在每个用户的主目录下,都有一个 vi 的配置文件".vimrc"或".exrc", 用户可以编辑它,
使这些设置在每次启动 vi 时,都有效。
  例如,加入如下设置行:
set nu 显示行号
set nonu 不显示行号
set ic 查找时不考虑大小写
set noic 查找时考虑大小写

在vi里搜索关键字

  当你用vi打开一个文件后,因为文件太长,如何才能找到你所要查找的关键字呢?在vi里
可没有菜单-〉查找,不过没关系,你在命令模式下敲斜杆(/)这时在状态栏(也就是屏幕左下
角)就出现了 “/”然后输入你要查找的关键字敲回车就可以了。
  如果你要继续查找此关键字,敲字符n就可以继续查找了。值得注意的是“/”是向下查找,
而“?”是向上查找,而在键盘定义上“?”刚好是“/”的上档符。

用彩色的vi写程序

  修改$HOME中的.vimrc,把color值设为true
  把环境变量VIMRUNTIME设成vim的路径名
  例:/usr/share/vim
  在vi中键入
  :syntax on回车
  :so $VIMRUNTIME/syntax/java.vim回车(现在版本的vi支持无数程序语法色彩档,都在
syntax/下,看一眼吧:))
  如果不喜欢所用的xterm背景色,可以用xterm -bg LightBlue(或其他喜欢的颜色)启动,
或者修改.Xresouce的xterm background项。
  vi -o xxx.java xxxx.java

vi

例如:Esc键在vi中输入ctrl+v与Esc为^[
请问Delete键在vi中如何输入?

d
空一行

[Ctrl+V][Del]

输这个键有什么用啊

输不进去

我想在shll里自动telnet到另一台机器终止.profile(自动运行了程序)执行,好执行我在shll中的一些命令。

输不进去

这种情况是因为DEL在您的终端上被定义成某个中断键,中断是被操作系统优先处理的。
使用stty -a 可以显示出DEL被哪个中断所用。
以下是两种解决方法:
1。使用“stty 中断名 新的中断键”形式改变中断键设置,然后调用vi,再使用ctrl+V的方法。如:stty intr ^E;vi
2。使用一个shell脚本myvi:stty raw ;vi $*;stty -raw
调用myvi
还有一种变通的解决方法,DEL键的ascii码应该是^?,0x7f,

关键字:linux
[1] [2] [3]

责任编辑:黑客基地        



本文引用网址: 

Linux指令大全 vi指令的相关文章
发表评论