vi常见问题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
需要解释的是,VI有很多变种,它本身并没有这种功能,提供这种功能
往往是其各种衍生版本,比如说vim。下面就vim中如何语法高亮简单解释一下。
首先,确定一下你所用的操作系统,如果是windows,那么默认的配置文件
就可以工作了。如果还不行,可以用鼠标从syntax菜单下选择一下适合你的
文件类型(新版本的gvim默认把文件类型选择关闭了,需要点开,然后按照
(3)如何复制粘贴?
复制
方法一:先ma标记当前位置为a,移动到新的位置,再y`a或者y'a复制从标记位置a到
当前位置的内容。`和'的区别:`以字符为单位,'以行为单位。这个方法应该是所有vi
都适用的。(如果不对请指正。)
方法二:按v或V或Ctrl+V进入visual模式,移动光标选择一段内容,按y。三者的区别:
endw
如果位数不足需要在前面补零,可以用Ctrl-V块选择,然后I插入0。
:%s/\i\+/&/g words
:%s/^ lines
:%s/the/&/g "the" anywhere
:%s/\<the\>/&/g "the" as a word
你可能希望复位'hlsearch'或者使用":nohlsearch"。
(8)如何去掉高亮搜索?
方法一::nohlsearch
方法二:/awertgvcxz(查找一个肯定不存在的字符串)
估计这是最难回答的一个问题了。:-)
不过首先应该确定你的VIM版本是否足够新,功能是否完整。使用:version命令查看你
的VIM版本以及功能。一个常见的情况,如果你用的是RedHat系统,请确定安装了
vim-enhance的rpm包,否则将是不完整的VIM。
(2)如何找到上次编辑的文件?
Ctrl+O(按两次)
(7)如何计数搜索的字符串?
(8)如何去掉高亮搜索?
(9)如何解决linux下gvim中文菜单乱码的问题?
(10)如何对所编辑的文件语法高亮显示?
(11)如何快速插入多行数字0-99?
(12)如何设置中文编码?
(13)如何去掉或者插入^M这样的字符?
(14)如何整体缩进一段代码(插入tab)?
(15)如何合并两行?
开头字母选择类型)
如果是linux,那么确认一下是否是redhat。如果是redhat,那么需要安装
vim-enhanced的rpm包。这些都做了以后,可以用:syntax on来打开语法高亮。
必要时可以用:set filetype=...来设定你的文件类型。
如果使用图形界面,比如gvim,那么syntax on和set filetype的操作可以
done
方法二:
vim *.c
:argdo %s/oldvalue/newvalue/ge | update
(5)如何把fold一次全部打开?
zR或者:set foldlevel=999
全部关上是zM
(6)如何选择、复制或者查找光标所在的单词?
在VIM中用iw或者aw表示一个单词,两者稍有区别。
选择光标所在的单词:viw(v进入visual模式,然后iw)
复制光标所在的单词:yiw
查找的话就是两个很常用的明令:#和*
(7)如何计数搜索的字符串?
如果需要统计缓冲中一个模式(pattern)出现的频率,需要把'report'置为0,然后
用替换命令把模式替换成它自己。Vim报告的已替换的数目就是模式出现的次数。例:
:set report=0单中选择,同windows下。
如果是在控制台中使用vim,还应当确定你的终端设置支持颜色。
(11)如何快速插入多行数字0-99?
在命令行中输入以下代码,或者先把代码保存到一个外部文件,然后source这个文件:
let i = 0
while i < 100
put = i
let i = i + 1
(16)如何设置缩进距离(tab宽度)?
(17)如何让VIM不生成备份文件(~文件)?
(18)如何设置windows下gvim的字体?
==============================================================================
(1)为什么别人的方法在我这里行不通?
注:以下问题以及解答均由版上的文章归纳整理而来,部分内容为原文引用。
(请搜索“(编号)”快速定位到问题答案部分。)
(1)为什么别人的方法在我这里行不通?
(2)如何找到上次编辑的文件?
(3)如何复制粘贴?
(4)如何在多个文件中进行替换?
(5)如何把fold一次全部打开?
(6)如何选择、复制或者查找光标所在的单词?
:source $VIMRUNTIME/menu.vim
也可以将以上内容加入.vimrc
光source一个menu.vim或者啥也不source都是乱码
另外,也有网友报告说没有遇到此类问题
注:这里的source指的是vim自己的source命令,和bash shell的source无关
(10)如何对所编辑的文件语法高亮显示?
设置了高亮搜索(:set hlsearch)以后,可以通过:set nohlsearch永久地关闭高亮
显示,也可以通过:nohlsearch暂时关闭高亮显示,下次搜索时将自动恢复高亮。
(9)如何解决linux下gvim中文菜单乱码问题?
以vim6.3为例
:source $VIMRUNTIME/delmenu.vim
发信人: thinelephant (严重消化不良),信区: VIM
标题: [faq]常见问题欢迎指正或补充
发信站: BBS水木清华站(Tue Jun 22 19:44:37 2004),站内
本文将根据版上的提问不断修改、补充,力图回答大多数的常见问题。欢迎大家指正或
补充(补充解答的内容,或者补充没有列出的问题)。
v以字符为单位,V以行为单位,Ctrl+V是块选择。这个方法只在VIM下适用。
粘贴
p或P。区别:前者粘贴到光标后面,后者粘贴到光标前面。
(4)如何在多个文件中进行替换?
一般可以用sed或者vim来做。比如要对当前目录下的*.c文件进行替换:
方法一:
for i in *.c; do
sed -i -e 's/oldvalue/newvalue/g' $i
往往是其各种衍生版本,比如说vim。下面就vim中如何语法高亮简单解释一下。
首先,确定一下你所用的操作系统,如果是windows,那么默认的配置文件
就可以工作了。如果还不行,可以用鼠标从syntax菜单下选择一下适合你的
文件类型(新版本的gvim默认把文件类型选择关闭了,需要点开,然后按照
(3)如何复制粘贴?
复制
方法一:先ma标记当前位置为a,移动到新的位置,再y`a或者y'a复制从标记位置a到
当前位置的内容。`和'的区别:`以字符为单位,'以行为单位。这个方法应该是所有vi
都适用的。(如果不对请指正。)
方法二:按v或V或Ctrl+V进入visual模式,移动光标选择一段内容,按y。三者的区别:
endw
如果位数不足需要在前面补零,可以用Ctrl-V块选择,然后I插入0。
:%s/\i\+/&/g words
:%s/^ lines
:%s/the/&/g "the" anywhere
:%s/\<the\>/&/g "the" as a word
你可能希望复位'hlsearch'或者使用":nohlsearch"。
(8)如何去掉高亮搜索?
方法一::nohlsearch
方法二:/awertgvcxz(查找一个肯定不存在的字符串)
估计这是最难回答的一个问题了。:-)
不过首先应该确定你的VIM版本是否足够新,功能是否完整。使用:version命令查看你
的VIM版本以及功能。一个常见的情况,如果你用的是RedHat系统,请确定安装了
vim-enhance的rpm包,否则将是不完整的VIM。
(2)如何找到上次编辑的文件?
Ctrl+O(按两次)
(7)如何计数搜索的字符串?
(8)如何去掉高亮搜索?
(9)如何解决linux下gvim中文菜单乱码的问题?
(10)如何对所编辑的文件语法高亮显示?
(11)如何快速插入多行数字0-99?
(12)如何设置中文编码?
(13)如何去掉或者插入^M这样的字符?
(14)如何整体缩进一段代码(插入tab)?
(15)如何合并两行?
开头字母选择类型)
如果是linux,那么确认一下是否是redhat。如果是redhat,那么需要安装
vim-enhanced的rpm包。这些都做了以后,可以用:syntax on来打开语法高亮。
必要时可以用:set filetype=...来设定你的文件类型。
如果使用图形界面,比如gvim,那么syntax on和set filetype的操作可以
done
方法二:
vim *.c
:argdo %s/oldvalue/newvalue/ge | update
(5)如何把fold一次全部打开?
zR或者:set foldlevel=999
全部关上是zM
(6)如何选择、复制或者查找光标所在的单词?
在VIM中用iw或者aw表示一个单词,两者稍有区别。
选择光标所在的单词:viw(v进入visual模式,然后iw)
复制光标所在的单词:yiw
查找的话就是两个很常用的明令:#和*
(7)如何计数搜索的字符串?
如果需要统计缓冲中一个模式(pattern)出现的频率,需要把'report'置为0,然后
用替换命令把模式替换成它自己。Vim报告的已替换的数目就是模式出现的次数。例:
:set report=0单中选择,同windows下。
如果是在控制台中使用vim,还应当确定你的终端设置支持颜色。
(11)如何快速插入多行数字0-99?
在命令行中输入以下代码,或者先把代码保存到一个外部文件,然后source这个文件:
let i = 0
while i < 100
put = i
let i = i + 1
(16)如何设置缩进距离(tab宽度)?
(17)如何让VIM不生成备份文件(~文件)?
(18)如何设置windows下gvim的字体?
==============================================================================
(1)为什么别人的方法在我这里行不通?
注:以下问题以及解答均由版上的文章归纳整理而来,部分内容为原文引用。
(请搜索“(编号)”快速定位到问题答案部分。)
(1)为什么别人的方法在我这里行不通?
(2)如何找到上次编辑的文件?
(3)如何复制粘贴?
(4)如何在多个文件中进行替换?
(5)如何把fold一次全部打开?
(6)如何选择、复制或者查找光标所在的单词?
:source $VIMRUNTIME/menu.vim
也可以将以上内容加入.vimrc
光source一个menu.vim或者啥也不source都是乱码
另外,也有网友报告说没有遇到此类问题
注:这里的source指的是vim自己的source命令,和bash shell的source无关
(10)如何对所编辑的文件语法高亮显示?
设置了高亮搜索(:set hlsearch)以后,可以通过:set nohlsearch永久地关闭高亮
显示,也可以通过:nohlsearch暂时关闭高亮显示,下次搜索时将自动恢复高亮。
(9)如何解决linux下gvim中文菜单乱码问题?
以vim6.3为例
:source $VIMRUNTIME/delmenu.vim
发信人: thinelephant (严重消化不良),信区: VIM
标题: [faq]常见问题欢迎指正或补充
发信站: BBS水木清华站(Tue Jun 22 19:44:37 2004),站内
本文将根据版上的提问不断修改、补充,力图回答大多数的常见问题。欢迎大家指正或
补充(补充解答的内容,或者补充没有列出的问题)。
v以字符为单位,V以行为单位,Ctrl+V是块选择。这个方法只在VIM下适用。
粘贴
p或P。区别:前者粘贴到光标后面,后者粘贴到光标前面。
(4)如何在多个文件中进行替换?
一般可以用sed或者vim来做。比如要对当前目录下的*.c文件进行替换:
方法一:
for i in *.c; do
sed -i -e 's/oldvalue/newvalue/g' $i