当前位置:文档之家› linux下VI编辑器命令大全(超级完整版)

linux下VI编辑器命令大全(超级完整版)


flash remap timeout hardtabs=8 report=5 ttytype=vt100 noignorecase scroll=11 warn nolisp sections=NHSHH HUuhsh+c window=23 nolist shell=/bin/ksh wrapscan magic shiftwidth=8 wrapmargin=0 mesg noshowmatch nowriteany
:ab string strings 例如 ":ab usa United States of America" , 当你在文见里插入 usa 时 United States of America 就蹦出来了 :g/^/m0 把文件内容反转 :map keys new_seq 定义你当前 键盘命令 :set [all] vi or ex 的编辑状态 如 显示每行 :set nu :X 然后系统会提示输入密码, 输入密码后存盘退出, 保存后就加密了 下次编辑时使用 vi -x filename, 系统会提示你输入密码
.重复上一次修改!
大家都说了这么多了,我也来说两句 在当前屏幕中 H 跳到第一行 M 跳到中间一行 L 跳到最后一行
同时 vi 多个文件时,CTRL-SHIFT-6 回到上一个文件,在本次 vi 的文件和上次 vi 的文件之 间切换。其实就是一些文档写的 ^^ 但是我发现一个 BUG:在用 CTRL-SHIFT-6 切换到上一个文件后,用:args 查看多文件 vi 状态 时,屏幕底部仍然显示目前 vi 的是刚才的文件。 (在 HP-UX,Solaris,AIX 上通过)
NOTICE:把这里提到的命令牢记心间,行走 LINUX 才能轻松自如! 这是基本功,练就此身本领后,方可学习上乘功夫…… 如若不按此步骤修练,结果会经脉尽断,真气逆行,哈哈哈!
XP 交换两个字符位置 ddp 上下两行调换 J 上下两行合并 dG 删除所有行 d$ 从当前位置删除到行尾 y$ 从当前位置复制到行尾, 如果要粘贴到其他地方 p 就可以了
修改命令操作 c l 更改当前字符 c w 修改到某个单词的结尾位置 c 3 w 修改到第三个单词的结尾位置 c b 修改到某个单词的开始位置 c W 修改到某个以空格作为分隔符的单词的结尾位置 c B 修改到某个以空格作为分隔符的单词的开始位置 c 7 B 修改到前面 7 个以空格作为分隔符的单词的开始位置 c 0 修改到某行的结尾位置
在 .profile 里设置 vi 的环境选项 , 以上均测试过
怎么没有介绍标记的,做标记对那种大的程序文件阅读十分有帮助。 建议大家使用。
标记文本 mchar `char 'char " ''
用字母 char 标记当前光标的位置 移至 char 所标记处 移至 char 标记所在行的开头处 移至当前行上一次所在位置(在光标移动之后)――一个双引号 移至当前行上第一次所在位置的行的开头处(在光标移动之后)――两个单引号
在命令状态下,nyy 表示拷贝从光标行起的下 n 行内容,p 表示 paste,粘贴下来在光标处。
我常用到的单个字符替换用 r,覆盖多个字符用 R,用多个字符替换一个字符用 s,整行替换 用S
:%s/old_Word/new_word/g 这个指令是于在整个文件中替换特定字符串
将光标移到第 n 行,按下 mk 将光标移到第 m 行,按下 "ay'k 即将第 n 到 m 的行存到 a 寄存器,以此类推,b,c........寄存器等
c) 修改到某个语句的结尾位置 c 4) 修改到第四个语句的结尾位置 c( 修改到某个语句的开始位置 c } 修改到某个段落的结尾位置 c { 修改到某个段落的开始位置 c 7 { 修改到当前段落起始位置之前的第 7 个段落位置 c tc 修改当前行直到下一个字符 c 所出现位置之间的内容 C 修改到某一行的结尾 c c 修改当前行 5 c c 修改从当前行所开始的 5 行内容
For C-Shell: setenv EXINIT "set nu" For Bourne or Korn Shell: EXINIT="set nu"; export EXINIT For Korn Shell Only (alternate method): typeset -x EXINIT="set nu"
littletiger 的意思是不是这样: 以 HP-UX 为例 1、加密 vi file :X (Are you sure?(y/n)[n]:)回答 y 输入密码回车以后再保存,就加密成功了 2、解密 vi -C file 或者 vi -x file 在 Key: 后面输入密码进入 file :X (Are you sure?(y/n)[n]:)回答 y 直接回车以后再用 wq 或者 wq! 保存,就把 file 解密成功了
好像再另存不了不加密的了
用 :wq 或者 :wq! 另存
请高手指点迷精:vi 中如何在每行的倒数第二个字符处插入一个字符??
把 Tab 全部换成回车,应该怎么作啊? :1,$ s/ / /g 不行
^M (Ctrl+V+M)就是回车。
vi 加密不同的 unix 可能不同. 俺在 HP-UX 下,用 X 加密的文件只输 key(密钥). vi -C 文件名,便会要求输入密钥,如正确,便打开了.
替换命令操作 s 将当前字符替换为一个或多个字符 S 将当前行替换为一个或多个字符 5 s 将从当前字符开始的 5 个字符替换为一个或多个字符 下载
vi 替换使用规则: :g/s1/s/s2/s3/g 第一个 g 表示对每一个包括 s1 的行都进行替换,第二个 g 表示对每一行包括 s1 的行所有的 s2 都用 s3 替换 s 表示替换,s2 是要被替换的字符串,他可以和 s1 相同(如果相同的话用//代替),s3 是替 换字符串
加密码我在 8 上(bsh) 实验成功 所以大家最好还是加上 环境!!
vi 环境选项 Solaris ksh
noautoindent nomodelines noshowmode autoprint nonumber noslowopen noautowrite nonovice tabstop=8 nobeautify nooptimize taglength=0 Directory=/var/tmp paragraphs=IPLPPPQPP LIpplpipnpBTags=tags /usr/lib/tags noedcompatible prompt tagstack noerrorbells noreadonly term=vt100 noexrc redraw noterse
老外的程序的 log 文件,有些行就这么长,以至于影响了后面行的显示; more,pg 等可以折行
我还是不会用:X 加密,能不能说的详细一点,:X 后,提示输入 key:然后呢?mark what 后输入 什么呢,下次如何在打开呢?more 可以正常看吗? xiexie!
你使用的什么平台的 UNIX 呢?我从来没有见到 mark what 出现过啊 more 是不能正常看的,用 vi -x filename,然后输入密码就可以了
:set number 显示行号
:g/$/s// ABC/g :g/^/s//def /g 在文本每行的头和尾添加字符串.
用 vi 进行 coding 时的使用技巧: 用 ctags 命令对当前目录下的 c 源程序扫描,生成 tags 文件 $ ctags *.c 这样,在 vi 里通过命令 :ta fun_name 就可以直接打开函数 fun_name 所在的文件,并将光标置于函数开头
注意:在追加缓冲区的命令中,原缓冲区的名字一定要大写,才能将内容追加进去,否则是 覆盖原缓冲区的内容。追加内容在原缓冲区末尾另起一行。
清理掉 DOS 文本中的^M 可以在:1,$s/^M//g,其中^M 是 CTRL+V, CTRL+M。
删除从当前行开始到最后一行的所有内容 :.,$d 在:命令行模式下,首先可以确定命令的范围 .表示当前行;数字表示行号,如 1 表示,分隔 然后用命令 d 表示删除,y 表示复制......大家都知道的
请教 aix,ksh 下: 一行>=2048 个字符时,无法显示,怎么办?
在 vi 中好像应该没有什么办法了,这是 vi 的 Program Limits 中的 Maximum Line Length 限制。试一试用 UltraEdit 读读看吧
有的环境不能用 uedit 可以折行吗?
折行 :set wrapmargin=4
最后说一句,%表示全文 :%d 是删除全文
给“南非蜘蛛”补充一下,hehe 在:命令行模式下,首先可以确定命令的范围 .表示当前行;数字表示行号,如 1 表示第一行,2 表示第二行;$表示最后一行 范围用,分隔 ...
慎用:$d
:$d 只是删除最后一行嘛,用错了还不算最坏的结果,呵呵
=============================================================
不好意思,补充一下,想粘贴到某处,直接将光标移到某地,按下 ‘ap 即可
删除命令操作 d l 删除当前字符(与 x 命令功能相同) d 0 删除到某一行的开始位置 d ^ 删除到某一行的第一个字符位置(不包括空格或 TA B 字符) d w 删除到某个单词的结尾位置 d 3 w 删除到第三个单词的结尾位置 d b 删除到某个单词的开始位置 d W 删除到某个以空格作为分隔符的单词的结尾位置 d B 删除到某个以空格作为分隔符的单词的开始位置
下面引用由 bjchenxu 在 2002/09/05 09:07am 发表的内容: 折行 :set wrapmargin=4
相关主题