免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5415 | 回复: 8
打印 上一主题 下一主题

VIM使用FAQ~~~ [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-08-27 22:01 |只看该作者 |倒序浏览
想申请版主,为大家做点事,所以先整理了“使用 vim 有疑问的朋友们请在此跟贴提问 ”成为FAQ,希望大家支持!!先谢谢了~~~~~·

Q:
使用 vim 有疑问的朋友们请在此跟贴提问,flw 将尽量为你解答!
我先哈,问个不是VIM 的 VI类
有的时候用minix,里面只有elvi,我想问怎么使C语法加亮。
下面是set all 的截图。
snapshot.JPG (33.88 KB) 2004-12-25 20:41
   

A:
看你的 set all 的样子,应该是不支持。


Q:
我由于要经常配置一个软件的配置文件,很多情况下配置文件对空格 不可见字符要求严格,所以我用:set list来查看所有不可见字符,可是我不知道怎么重置它,就是查看完了后怎么取消掉那些结尾的$号?

A:
刚才看了看上面set all的启发,自己查了一下,呵呵,找到答案了
:set nolist
就可以取消set list的状态

A:
呵呵,
所有的 bool 型的选项用 set no??? 就可以关掉。
反过来讲,有些默认是 no??? 的,用 set ??? 就可以打开。
只要掌握了这个规律就好办了。


Q:
vim如何支持ftp操作
现在很多的编辑器都支持使用ftp打开远程文件,然后进行操作,vim中怎么进行这个?

A:
这个也可以。很方便。
打开:
:e ftp://192.168.10.76/abc.txt
保存(如果不存在则创建):
:w ftp://192.168.10.76/abc.txt
读取:
:r ftp://192.168.10.76/abc.txt
以上操作第一次打开时需要输入用户名和密码,
以后就不用了,vim 会记住的。

总之,大多数针对文件的操作都可以直接用来操作 ftp 文件,
vim 通过解析文件名中的 URL 标记来区别。

其实打开文件还有一个比较方便的办法,
那就是当你编辑的文件中包含有类似于 ftp://192.168.10.76/abc.txt 这样的文件 URL 时,
你直接把光标挪到上面,再用 gf 命令就可以打开了。

需要注意的一点是,
vim 本身并不携带 ftp 客户端,vim 只是调用操作系统提供的 ftp 客户端并捕获它的输出。不过大多数操作系统都是有 ftp 客户端的,所以这一点不用担心。


Q:
flw
能简单介绍一下vim脚本吗?
还有,我学help里的map命令的时候,说在特殊输入前面需要Ctrl+V,可是为什么我敲了以后,要么是没有反应(字符界面),要么是出来一大堆东西(GUI界面)?
还有Ctrl+R是什么意思?

A:
你是不是 windows 平台?Ctrl+V 在 windows 平台可是粘贴的意思哦。
如果不是 windows 平台,那么你检查一下 Ctrl+V 在你的环境下是不是被重新映射了。
Ctrl+R 是在编辑时或者命令行界面下调入寄存器值的热键。
比如 Ctrl+R+: 会得到上一次执行的命令(: 寄存器的内容),
Ctrl+R+/ 会得到上一次查询的条件(/ 寄存器的内容)。
Ctrl+R+<寄存器名>; 相当于 Normal 模式下的 "<寄存器名>;p 命令。


Q:
vi 处理多个文件编辑有什么法子?
我一般是用vi   file1 file2 file3...
然后用n N first last切换

A:
你问的是 vi ?还是 vim ?
下次发贴提问请尽量说清楚一些,谢谢!

如果是 vim 的话,n 和 N 命令象大多数 vim 的命令一样,是可以带重复次数的。比如 4N 5n 这样子。
你可以用 :args 命令查看当前正在编辑的文件列表,你正在编辑的文件名会用方括号括起来,然后可以用 4n 4N 这样的命令,快速地跳转到你要编辑的文件。
A:
也可以用:sp filename、:vsp filename来分屏打开文件,用ctrl+w+方向键来选择不同的窗口。


Q:
vim在编辑一个文件时如果打开多个文件,
如  vim   file1   时,不关闭file1时,如何打开file2  file3
现在我只能e file2,然后用e #跳回,能不能在vim file1时又打开file2 file3且能互相切换..

A:
假设你正在编辑 file1,那么用

  1. :args <CTRL-R>;% file2 file3
复制代码

就可以了。


Q:
请问楼主,如何删除连续两行之间的回车符,使连续的两行成为一行?

A:
  1. Jx
复制代码


Q:另外,问flw两个问题。
1、vi和vim有什么区别?总听见这两个词。
2、怎么将一定段落中的某个词替换成另一个词啊?
A:
1,vi 是传统的、古老的、最基本的 unix 编辑器,技术所有的类 unix 系统都有的。vim 是 Vi IMproved 的简写,是以一种比 GPL 更开放的形式发布的开源软件,该软件的宗旨是完全兼容(注) vi 并且提供很多增强功能,vim 现在已经成了大多数 Linux 系统的默认编辑器。
2,替换用 s/abc/def/ 这样,就可以把 abc 换成 def。
s 是最基本的替换命令,象大多数文本操作命令一样,它也可以带一个表示操作范围的前缀。有空了我会给大家讲讲范围前缀的语法和常见的用法。
一个简便的方法是,先在 visual 模式下想办法选中你要操作的范围,然后再输入 s 命令就可以替换了。
比如你要操作一个段落,可以先用 { 或者 [[ 挪到段落的开始处,然后再用 v 进入 visual 模式,然后再用 } 或者 ]] 挪到段落的结尾处,然后再输入 s 命令就可以实现你的目的了。


Q:
vi中有显示列号这个功能吗?
A:
什么叫“显示序列号”?
是“显示行号”的意思吗?
如果想显示行号,可以用 :set nu 试试。

Q:
能否让行号显示以0打头?像:
0001
0002
0003
这样子?
A:
这个似乎不行,
哪位知道的朋友请回答一下。

Q:
flw,偶问个问题,vim中光标在C函数和系统调用上时,按K进入man手册页,可是如果应用程序也有这个名字,比方说readlink,按下K就进入那个应用程序的man页了,如果我想取得在shell中man 2 readlink这样的效果,该怎么办?谢谢~
A:
偶找到方法了,先按下2,然后shift+k,就进入系统调用man页了,呵呵。

Q
在vi中,怎么选中指定的几行,然后进行规整格式之类的命令?
比如用V可以进入虚拟模式,然后上下就可以选中几行,然后用=规整格式。
如果我想选中的行比较多,有没有比较好的办法呢?
A
呵呵,
V 打开"可视模式"(不是虚拟模式,虚拟是 virtual)后,可以有很多种办法移动光标的,不一定非得用 h j k l , 比如可以搜索定位, 也可以用 [[ ]] ][ [] } { 等段落定位的命令.
v]]
v[[
v}
这样就可以选中一大块,而不用一行一行地选
还有 H L 这些都可以用.
详细请 help motion
另外, vim 内置了很多以 a 打头的文本对象, 如 a{ 表示一个 {} 块, ap 表示一个段落等等。=a{ 就可以重排当前语法块.

Q
=a{命令重排后,是按2个TAB键进行缩进的?想让它按一个TAB键缩进,该如果处理?谢谢! 在Visual状态下,如何选择整个文件?
A
全选的命令是
ggVG
gg表示到第一行第一个字母,
V进入visual line
G则到文件尾。
这样就完成了全选。
至于=a{重排,应该跟shiftwidth、softtabstop、tabstop、expandtab等设置有关。具体看你是怎么设置的。
我的是把TAB全部设置成4个空格了。
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
set cindent
set ai

Q
从win2k telnet到rh7.3使用vim编辑C文件时候,如何处理Ctrl+]呢?
A
vt100 不支持。
用 ansi 终端,
或者干脆改用 NetTerm 等软件,
NetTerm 的终端设置见我的原创精华。

Q
另外加一问,vim里面能不能设置emacs那样的集成调试环境?我每次都用的:!gdb ,挺麻烦,除此之外还有其他的比较简单的调试方法吗?
A


Q
问一下,vim如何把 “调用外部程序得到的输出” 转移到它自己一个新型的窗口里?
比如我调用
:!objdump -S %:p:r<cr>;
怎样让VIM产生一个新的BUFFER或者窗口,捕获它的输出?
A
  1. :split +enew | r !ls
复制代码

Q
能不能麻烦你详细解释一下每个元素的用法,就像上面有人解释ggVG那样,小弟第一次看到你这样的写法,谢谢
A
:h split
:h enew
就应该差不多了。
我说一下我的理解:
split :分割窗口
+cmd:split的用法,表示运行一个cmd
enew:打开一个新的无名buffer
|:管道
r:read
!ls:执行外部命令

Q
vim支持语法高亮度显示,那么vim是否支持将语法高亮度显示的结果保存为一个html文档呢?这样就可以很轻松的将源代码转换为html文档了。
A
  1. :TOhtml
复制代码


Q
to flw:
有没有VIM全一点的资料?贴个上来啊,谢谢!
A
vimcdoc.sf.net

Q
你好 我想问一下 在vim中如何 进行块复制 删除  等 块操作
A
:v进入可视模式,hjkl选中要选中的块。y:复制、d:删除/剪切、p:粘贴。
A
v: visual mode//和普通的选择没区别
V: visual line mode//在此模式下,选择的基本单位是行,即:要么就选一行,要么就什么都不选
Ctrl-V: visual block mode//此模式下,可以选择一个块。什么概念?自己试试吧,呵呵。


Q
原帖由 "assiss" 发表:

+cmd:split的用法,表示运行一个cmd
assiss 请问这个cmd是指的shell的还是vim内部的?
A
The [+cmd] argument can be used to position the cursor in the newly opened
file, or execute any other command:
        +               Start at the last line.
        +{num}          Start at line {num}.
        +/{pat}         Start at first line containing {pat}.
        +{command}      Execute {command} after opening the new file.
                        {command} is any Ex command.
学会使用:h,呵呵。


Q
大家看看我的gvim中文问题,唉.
http://bbs.chinaunix.net/forum/v ... mp;highlight=assiss
现在唯一的遗憾就是VIM无法正常处理中文了,不好用来编写HTML。
Q
那么能不能读入(解析)一个html文件呢?就是去掉html的的标记,象浏览器一样读入html??
A
vim 是个文本编辑器,不是 html 浏览器。
去掉标记很简单:
:%s/<[^>;]*>;//g
就可以了。

Q
我想请问flw,我现在想把我的vim升级到最新版本,我该怎么做呀,在linux下面我不知道怎么uninstall我现在这个版本的,汗。。。
A
如果是rpm安装的,就rpm -e vim;如果是源码编译的,就到源码目录下,make uninstall;make clean;make distclean;然后删除源码包就可以了。
似乎可以吧,反正我都是这么干的
A
我也来试着回答一下:
先确定你用的是哪个发行版? RedHat、Mandrake会用RPM包,你上网上下载了最新的安装包安装上去的话就行了。而Slackware一般用tgz包(RPM包也可以用),下载tgz包是最省事的了,可以升级安装:upgradepkg vim*.tgz。

如果是下载的源码,那就要编译了,你可以让两个版本共存,或者先删掉先前版本:rpm -e vim???或uninstallpkg vim???,然后编译源码:
./configure
make
make install
以后要再升级的话,可以先:make uninstall(在你做make install的那个目录里),然后再装就可以了。


Q
很好很好!很早就盼望有对VI/VIM感兴趣的高手了。

既然来了,就不客气了,先问一个很久没想出好方法的问题了:
写C的时候,如果要把一段注释掉,有什么方法?
我先Ctrl+V选择上,然后
vmap <F2>;  zfO/*<ESC>;jo*/<ESC>;zn

这样好麻烦,有没有一个更简单有效的方法呢?最好不要用折叠。
A
我用这个办法,按下\pc
function Comment() range
                call append((a:firstline-1),"/\*"
                call append(a:lastline+1,"\*/"
endfunction
map <unique>; <Leader>;pc :call Comment()<CR>;
A
先 :vmap <F2>; :s/^/\/\//<CR>;
然后选中一段内容,按 F2。



Q
现在我是通过telnet到linux服务器上去的,用vi打开文件后,所有字符的颜色都是一样的(白底黑字),感觉很郁闷呀。。。
怎么才能让字符有颜色呢?
A
其实是有颜色的,你的发到终端就没颜色了。你可以设置一下你的telnet工具让它显示颜色,也可以将终端类型设置正确,这样就可以看到颜色了。
A
终端类型设置正确后,还没颜色,试试
:syntax on
看看vim手册里的颜色设置
A
太暗可以试试
:set background=dark

:set backgruond=light
只有两种颜色加下划线,可能是终端的颜色还没设好,看看ificanfly   说的   的终端设置。
再查查vim手册
A
呵呵,偶找到了
在options ->; Session Options 对话框中编辑当前颜色,注意在Color Scheme对话框中选中Advanced复选框,就可以有多种颜色了
大家试试吧,注意我说的是secureCRT中哈
基本上都搞定了,但是现在我每次进vim都要syntax on,设定的颜色才生效,好麻烦呀,可不可以一劳永逸呢?
大家在教教我哈,多谢多谢


Q
在vi中,如果我不小心按错了键,跑到文件头或者文件尾了,怎么能快速回到刚才光标所在的位置?
A
vi 中不知道。
vim 中可以用 Ctrl+o(欧) 回来。
A
自己回答一下自己的问题,vi中用``就可以回到刚才的位置。


Q
再问一个问题,我原来都是用emacs的,但是觉得emacs太大了,启动非常慢,现在改用vi,用emacs的时候,如果我键入if,再回车,下一行就自动缩进,直到输入endif再和if对齐,vi中不知道怎么实现这个功能,还有vi可以根据后缀自动识别文件类型吗?
A
可以使用:set ai的命令来启动自动缩进。用:syntax on命令来启动语法着色。一般都是写在.exrc中每次自动执行的。
A
自动缩进有两个选项:

set autoindent
set cindent
autoindent 就是自动缩进的意思,当你在输入状态用回车键插入一个新行,或者在 normal 状态用 o 或者 O 插入一个新行时,autoindent 会自动地将当前行的缩进拷贝到新行,也就是上面这位网友说的“自动对齐”,当然了,如果你在新行没有输入任何字符,那么这个缩进将自动删除。

cindent 就不同了,它会按照 C 语言的语法,自动地调整缩进的长度,比如,当你输入了半条语句然后回车时,缩进会自动增加一个 TABSTOP 值,当你键入了一个右花括号时,会自动减少一个 TABSTOP 值。

你之所以只用 set ai 就好了的原因,大抵是因为你的 cindent 已经在别的地方设置好了。你用 set all 就可以检查一下。


Q
同时打开了多个文件,怎么close其中的一个呢?
A
:q
A
:q的话就全退出了


Q
用什么快捷键可以在"插入模式"下删除光标到行尾的字符
A
^od$
^o 表示同时按住 Ctrl 和 O 键。

Q
set all命令是列举所有可能的选项还是列举已经执行了的所有命令啊?
A


Q
我也来问个问题。如何比较快速简单地用一段文字替换文章中的多处不同文字?
例如我在文章中发了十句不同的牢骚,现在要用“为人民服务”来代替所有的这十句不同的牢骚,应该怎么做?
我以前是用寄存器,不是太方便,有什么快捷键吗?
A
:%s/TNND/为人民服务/g
Q
文章中发了十句不同的牢骚,现在要用“为人民服务”来代替所有的这十句不同的牢骚,应该怎么做?
%s/xxx/wrmfw/g
flw,这样不行。

例如有TNXX, TMX, XXX, FUXX, etc. 都要换成“为人民服务”, 怎么比较快?
比如我选中“为人民服务”,然后y,然后找到TMX, p, 选中TMX,d,这时“为人民服务”就被从寄存器中冲掉了。
而Windows中就可以不停的选中,然后Ctrl-v
A
:%s/TNXX\|TMX\|XXX\|FUXX/为人民服务


Q
怎么能让vim打开文件得时候自动判断是否有正在运行得vim,如果有那么在已经打开得vim中打开文件,如果没有自动注册为server。而不出现警告得消息
A
你说错了吧?
应该是先注册是 OLE server,然后就会具备你所说的那种功能。
注册完之后,你 new 一个 vim OLE server,然后系统就会自动判断看是否有激活的 vim OLE server,如果有就用现有的,不再激活第二个了。
A
我就是先注册成server才能实现这种功能。 我想问的怎么能自动判断,而不出现警告信息.
在vim里面help remote可以找到我的实现方法。
错误信息: E247 没有注册为GVIM的服务器: send failed, trying to execute locally.
我想在source navigator 中将默认的编辑器设定为vim.
我最初设定的方法是.在source navigator 的external editor 一栏 改成
gvim --servername GVIM --remote
当没有正在运行的vim的进程的时候会出现以上的错误信息.
当然这个方法不好。 更好的方法是
gvim --remote-silent

--remote的的意思是在已经运行的远程vim进程打开文件。 如果没有远程vim进程则启动一个进程并发出警报。

-silent就是让vim在应该发出以上警告的时候闭嘴。

想一想我还真是太笨了, 竟然没试试remote。

Q
用vi怎么copy一行,到另外的一个vi打开的文件中?
Step 1   yy
Step 2   :vi file2
Step 3   p

Q
再问一个,
/*
* comment
*
*/

象这种风格的注释,如果需要回车就自动在下一行添加 空格 和 * 号,应该打开那个设置开关?
A


Q
问一个问题:

:map <F2>;  jdd
用来删除下一行,能不能指定命令个数,就是象3dd可以除3行一样,使得按F2时能做j3dd这样的动作?应该怎么写map?
A

Q
vim和gdb一起来调程序吗?
A
vim和gdb调试程序好像很麻烦, 你可以去vim.org找一下,有一个script是干这个的, 不过好像需要netbean。
顺便提一个问题, windows下的命令行的debugger有什么好的方法集成到vim中控制呢?
emacs能做到很容易的控制么?

Q
我的backspace与delete键交换了位置,按backspace是delete的功能,而backspace是delete的功能。      虽然能用但很不习惯。
不知道是为什么?
A
是不是ssh登录上去出现的?
是ssh的设置吧?
A
正确。我现在装了两个ssh,
一个是3.23版的。有一个5.4版的。
5.4版的会出来上面这种情况。
而3.23版的则不会出现上述这样的问题。

Q
我本机只有vim的非gui版本。我把另一个机子上的gvim可执行文件和vim61这个目录cp到/local下,然后用VIMRUNTIME指定vim61这个目录。但执行gvim的之后,还是到编译时缺省的目录(/usr/share/vim/vim61)去寻找syntax和help文件。怎么解决这个问题??很奇怪,我已经按照help里面对VIMRUNTIME的描述做了呀。
A


Q
我的 vim 中的 taglist  script 已经安装好,但是只能改变函数列表窗口和主程序的高度,请问怎么样才能改变它们的宽度呐


Q
我在两个终端下打开两个文件,想从一个复制几行到另一个文件中.如何做?好像用y,p的方法不行.
A
应该是放在剪贴板里面吧,windows下面的vim应该是 "+ 寄存器。复制用"+y
,粘贴用"+gP。
*nix下面我没有试过。
可以参看:h E354

Q
请教: 和cscope一起用语法加亮消失了?
我用redhat9.0, vi是系统自带版本6.1.320,
装了一个cscope(版本15.5)配合使用,但在cscope里搜索出的C文件(cscope调用vi打开的)全部没有语法加亮.
单独使用vi时又是好的,所有语法加亮都有,看来半天手册也没解决.不知各位有碰到过或解决过类似问题没?


Q
关于  C-]  的重定向:

vim 中的跳转是   C-]

telnet 的退出热键也是这个.


要telnet到异地,在那个机器上使用vim, 怎么把'C-]' map成  'C-['

试了  :map C-] xx      没成功.

帮一个!
A
:map <Ctrl+V>;<Ctrl+[>; <Ctrl+V>;<Ctrl+]>;

尖括号括起来的部分表示一个组合键,不是让你原样输入的。
windows 用户要把 Ctrl+v 换成 Ctrl+q

Q
几个问题集中请教一下:
1、vmap <F2>; :s/^/\/\//<CR>;
这个很好,但输入F2之后最左边几列被选中了,不爽,有没有优化的方法。

2、map的时候怎么map 加了ctrl的,比如ctrl + F9

3、在Insert模式可不可以映射Ctrl+h,Ctrl+j,Ctrl+k,Ctrl+l为放些键,不想移动手到小键盘上

4、比如有如下表达式:if( ( aaa == bbb) || (ccc != ddd))
要求当光标在 aaa的时候显示效果if( ( aaa == bbb) || (ccc != ddd)) 而当光标移开的时候恢复,也就是很次都高亮显示最近匹配的{} () 这在阅读代码的时候很有用。
A
自问自答:
第三个解决了:
map! <C-h>; <C-o>;h
map! <C-j>; <C-o>;j
map! <C-k>; <C-o>;k
map! <C-l>; <C-o>;l
这样在编辑的时候就可以不敲Esc还是用hjkl移动光标了,也不用把手移动到小键盘上。
A
第二个
在Unix下面使用:map <C-v>;<C-F12>; ...
win下面使用:map <C-q>;<C-F12>; ...
第四个
估计需要用到自动命令和一些脚本。去www.vim.org找找吧,应该有现成的脚本。

第一个
我用比较迂回的方式处理的,不是很好,但能用:

:map <F3>; :s/^/\/\//<CR>;:s/xxxxxxxxxxxxxxxxx//e<CR>;:file<CR>;

不过现在我已经不用这个了,NERD Commenter 比较好,在http://www.vim.org上面找到的

Q
俺有个小问题,困惑很久,找不到答案。

:(也可能是找的还不够仔细。

怎么用VI来以十六进制显示和编辑?
A
用外部工具xxd,在vi里面执行:

:%!xxd

切换回来用:
:%!xxd -r

Q
vim 执行完s/reg/rep/g后
文本中所有的reg都变成有红色块状东西框上了,而且每次打开文件都是这样的,syntax off也没有用
只能 用s/,查找一个什么东西把它换成“,”被红掉,怎办。另外
在vim中处理中文,一个字被拆为两半,每次移动光标时光标移过的中文部分全都每个字带黑框,这个又怎办呢?

很想学好linux/unix下的开发,但总是觉得有点难。
确实不如windows下的开发简单。
学习中,先把vim混好了再说吧。
A
用 :set nohlsearch 和 :set hlsearch


Q
请问斑竹,怎样用vi来实现函数跟踪?
A
man ctags

Q
为什么我在vi中替换命令不行?也根本没有V/v模式呀.怎么替换的你们?
A
你用的FreeBSD吧,它的是nvi是不支持V/v模式的。
在sysinstall里面装个vim6.3,然后在/usr/local/share/vim/vim63里面把vim..(文件名记不清楚了)cp 到 ~/.vimrc
A
不可能吧?你用的是vi还是vim?我的vim中:
:%s/old-string/new-string/g
A
vim中我也可以用啊.但在VI中就是不行.sco openserver 5.0.7
不知它的VI是什么版本的.反正没有V/v模式我就不知道怎么替换了.
A
用:ver看版本
在一行上ma,然后移到另外一行,执行 :'a,.s/XX/XXX/g 或者:.,'as/XX/XXX/g (反向)。

Q
问一下,vim是否可以插入一个空行?

我排版代码时,想调整布局,一般用o或O,或yy一个空行再p上,感觉麻烦,能不能直接插入一个空行,并且不进入insert模式?
A
o<ESC>;

可以把这两个键映射成一个快捷键。

map 就可以了。
还有啊,如果你需要不停地插入很多空行时,可以先插入一个,
然后再把光标挪到新位置,摁一下小数点就可以了。


Q
已经syntax enable,syntax on
但编辑程序(例如 esql  c 程序)时只高亮一部分关键字,没有彩色并.
vimrc是cp的例子.

版本vim6.3    sco unix5.05

版主让看精华贴,我没找到,能告诉我在哪里吗?
A(lfw)
我只有一个原创精华嘛!

Q
请大家推荐一下常用的,很好用的,比较需要用的,一些VIM插件之类,谢谢.
A
不知道 TOhtml 插件你经常用吗?
可惜我们的 BBS 不能帖 html,不然的话,以后帖代码用它倒是挺好的
A
基本上这个不用.好像有的还会分左右屏显示一些函数原型,类型定义,变量在左边呀什么的...上次看到一个帖在这里的截图,不知道是否插件搞的.反正我没用过.
A
那个不是插件,都是 Vim 自身的功能。
倒是用 ctags 这个命令了。scope 也行。

Q
在 FreeBSD 5.3下的vimrc的配置文件位于什么位置?
A
help vimrc
help system-vimrc

Q
怎么实现vim内,打一个括号如 "("自动补全另一个括号 "" ?
A
:iab ( ()

Q
请教, 如何删除所有的偶数行?
A
<ESC>;ggqajddq10000@a
假设你的文本有不到 20000 行,那么输入以上的命令就可以删除所有的偶数行。

Q
有个问题,我翻看了前面20多页也没找到答案。
vim在我的FreeBSD终端下显示不正常
用vim打开一个文件后,第一行显示“25l”,而实际上第一行应该是空的
想退出,敲命令:q!
接着屏幕下面出现一堆25h25l25h25l25h
还是可以退出来,用less看文件也没发生变化。
用FreeBSD自带的vi编辑没有上述问题。
用ssh远程登录后使用vim,也没有上述问题。
我怀疑是键盘类型或者是charset的问题,但是不知道怎么解决
困扰很久了,请楼主帮我解答一下。
多谢
A
应该是你的 TERM 环境变量不对,你把它印出来我看一下。
env | grep TERM
我不知道你的 FreeBSD 是哪个版本,我的 5.3 里边,是 con??? 记不清了。
A
厉害,困扰这么久的问题一下子解决了

就是TERM的问题
主要是照搬网上某文档说的一个配置
alias vim       "env TERM=xterm-color vim"
注释掉就没问题了,呵呵

我用的是FreeBSD 4.11-RELEASE,以后还请多多指教
再次感谢

[ 本帖最后由 chinesedragon 于 2007-8-27 22:56 编辑 ]

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:45
2 [报告]
发表于 2007-08-27 22:07 |只看该作者
建议分类, 这样看起来很吃力

论坛徽章:
0
3 [报告]
发表于 2007-08-27 23:00 |只看该作者
Q
再请教两个问题:
1:如何每隔两行插入一个空行 ?
2:一个文档如下

    1
    1......
    2.......
    .
    .
     2
    1.....
    2....
    .
    .
    .
    .
如何把格式变成
1-1....
1-2......
1-3....
.
.
.
2-1...
2-2...
2-3
.
.
.

A
1,隔两行插入一个空行:

ggqajo<ESC>;jq1000@a
2,……………………

gg:/^1$/+1,/^2$/-1 s/^/1-/<CR>;:/^2$/+1,/^3$/-1 s/^/2-/<CR>;
<CR>; 表示在那个地方需要回车一下。

Q
如果文件格式:
1-01......
1-02.............
1-03..
2-01.....
2-02....
.
.
.
在vim中如何实现:

1-01......1-01
1-02.............1-02
1-03..1-03
2-01.....2-01
2-02....2-02
.
.
.
A
:%s/\(\d\+-\d\+\)\(.*\)$/\1\2\1/

Q
能把vim嵌入到eclipse里吗 ?
我刚从c转到java,但我太习惯用vi了,总觉得eclipse里的编辑器不够方便。
A
上回 autrijus 跟我说,eclipse 有个叫 EPIC 的插件,可以实现。
因为我的机器太慢,eclipse 运行不起来,所以具体的情况我也不清楚。

Q
1.我是刚开始使用vi,(fc3自带的),主要实用来学习c语言。因为经常要在vi和shell之间切换,感觉太麻烦。我想请问能不能不离开vi环境进行编译,和运行。如果能要如何设置?
谢谢。
2.如何将编译出现的错误重定向到源文件中?
谢谢。
补充一下:我用make命令是提示:
make: *** No targets specified and no makefile found.  Stop.

Hit ENTER or type command to continue
那么应该如何添加makefile文件呢?
谢谢
A
你的两个问题实际上是一个问题,而且看来你已经找到方法了,只不过遇到了障碍而已。
找找精华贴中写  Makefile  的章节,就知道该如何做了。
gook luck!

论坛徽章:
0
4 [报告]
发表于 2007-08-27 23:02 |只看该作者
原帖由 koolcoy 于 2007-8-27 22:07 发表
建议分类, 这样看起来很吃力

大家问题千奇百怪,非我能力所及啊~~~~~~

论坛徽章:
0
5 [报告]
发表于 2007-08-27 23:03 |只看该作者
看来不行了,连我自己都找不到问题在哪里,看来做了也没有用~~~~~~~23

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2007-08-27 23:06 |只看该作者
原帖由 chinesedragon 于 2007-8-27 23:03 发表
看来做了也没有用~~~~~~~23

你得到它了

论坛徽章:
0
7 [报告]
发表于 2007-08-27 23:08 |只看该作者
原帖由 flw 于 2007-8-27 23:06 发表

你得到它了


"you got it ".
呵呵, 版主这句话几个月前说过一次!

论坛徽章:
0
8 [报告]
发表于 2007-08-27 23:15 |只看该作者
做无用功了~~~~~~~··:em11: :em11:

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
9 [报告]
发表于 2007-08-27 23:20 |只看该作者
原帖由 chinesedragon 于 2007-8-27 23:15 发表
做无用功了~~~~~~~··:em11: :em11:

其实根本不需要做什么 FAQ,
中文版的 vim 手册一章一节写得那么清楚,
也有教程,
看看就行了,不会了就 help 一下,就行了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP