youken 发表于 2005-5-14 20:36:06

都说VI很强大,它可以做到这个操作吗?

请问VI能不能像Windows里的UltraEditor那样,对一列或者几列进行编辑。
比如:
adfjdladjfladjf
asijefdhafjfei

我想把每一行第四列的j替换成i,请问如何做?
如果我想删除每一行第四列的j,如何做?
如果我想复制每一行第四列的j,然后粘贴到第八行,如何做?
当然,这里只有两行,所以可以一行一行地改,但是如果这是一个有100行的文本怎么办?难道也要一个一个地去改?

我查找书本也没有发现这样的操作,不知道哪位高手可以指教。

mantas 发表于 2005-5-15 00:41:47

Ctrl+ v 进入列操作模式
你说的问题就容易多了,UltraEdit中的这个功能我倒是不会,呵呵

kornlee 发表于 2005-5-15 01:48:09

1)sed -i 's/\(^.\{3\}\).\(.*$\)/\1\2/' file
2)sed -i 's/\(^.\{3\}\).\(.*$\)/\1i\2/' file
3)sed -i 's/^...//;s/\(^.\).*/\1/' file >file1;xargs<file1>file2;rm file1;sed -i '8r file2' file;rm file2

BOoRFGOnZ 发表于 2005-5-15 07:20:37

UE还有这个功能? :mrgreen:

kornlee 发表于 2005-5-15 14:13:04

VIM/EMACS的强大,远远超乎我们的想象!

youken 发表于 2005-5-15 17:52:43

呵呵,多谢指教。
看来VI果然是一个很强大的编辑器呀。

我看的书本多半是指导进行行操作的,没有讲解列操作,所以有些孤陋寡闻。

现在我的Windows下也安装了GVIM的Windows版,以后就用它替代记事本了。

kornlee 发表于 2005-5-15 20:43:33

呵呵,多谢指教。
看来VI果然是一个很强大的编辑器呀。

我看的书本多半是指导进行行操作的,没有讲解列操作,所以有些孤陋寡闻。

现在我的Windows下也安装了GVIM的Windows版,以后就用它替代记事本了。
用vim当notepad, ? 糟蹋啦!!!
http://vimcdoc.sourceforge.net/doc/usr_01.html

dannycat 发表于 2005-5-15 21:51:54

如果真的几百行的话, Ctrl-V 也不那么好了。

其实 vim 中可以使用 \%nnc 的方式来匹配第 nn 列,用 \%>mmc 和 \%<nnc 限定 mm 列之后和 nn列之前……

mantas 发表于 2005-5-17 10:12:26

如果真的几百行的话, Ctrl-V 也不那么好了。

其实 vim 中可以使用 \%nnc 的方式来匹配第 nn 列,用 \%>mmc 和 \%<nnc 限定 mm 列之后和 nn列之前……

版主高见,又学会了一手,谢谢。
不过不是太明白,“\%”在什么地方打?
我在 命令模式冒号后打,提示说“\ 后应该有 / ? 或 &”。
怎么用呢?谢谢了先。

sumless 发表于 2005-5-24 19:26:59

现在我的Windows下也安装了GVIM的Windows版,以后就用它替代记事本了。
youken,请问你是怎么装上的?
装gvim之前你还装什么了没有?
我昨天下了一个 gvim6.1.142 ,可是安装却提示说找不到 Perl56.dll 。这是怎么回事?

sumless 发表于 2005-5-25 01:05:41

不用回答了
我已经从网上找到了 Perl56.dll 文件,加进去就OK了
页: [1]
查看完整版本: 都说VI很强大,它可以做到这个操作吗?