Linux 如何在vim中选择特定的文本块?
这些是我档案中的内容Linux 如何在vim中选择特定的文本块?,linux,unix,vim,vi,Linux,Unix,Vim,Vi,这些是我档案中的内容 -r-xr-xr-x 1 dinesh eng 29072 Aug 26 2004 config.sub -r-xr-xr-x 1 dinesh eng 38515 Aug 26 2004 config.guess -r-xr-xr-x 1 dinesh eng 5643 Aug 26 2004 install-sh -r-xr-xr-x 1 dinesh eng 767 Aug 26 2004 mkinstalldirs -r-xr-xr-x 1 d
-r-xr-xr-x 1 dinesh eng 29072 Aug 26 2004 config.sub
-r-xr-xr-x 1 dinesh eng 38515 Aug 26 2004 config.guess
-r-xr-xr-x 1 dinesh eng 5643 Aug 26 2004 install-sh
-r-xr-xr-x 1 dinesh eng 767 Aug 26 2004 mkinstalldirs
-r-xr-xr-x 1 dinesh eng 6328 Aug 26 2004 missing
-r-xr-xr-- 1 dinesh eng 440 Aug 27 2004 build.sh
-r--r--r-- 1 dinesh eng 975 Apr 2 2015 Makefile.am
-r--r--r-- 1 dinesh eng 1153 Apr 2 2015 configure.ac
-r-xr-xr-- 1 dinesh eng 952 Apr 2 2015 autogen.sh
drwxrwxr-x 4 dinesh eng 4096 Nov 30 2016 Scripts
lrwxrwxrwx 1 dinesh eng 35 Dec 1 2016 ltmain.sh -> /usr/share/libtool/config/ltmain.sh
-rw-rw-r-- 1 dinesh eng 2801 Dec 1 2016 config.h.in
lrwxrwxrwx 1 dinesh eng 32 Dec 1 2016 depcomp -> /usr/share/automake-1.11/depcomp
drwxrwxr-x 7 dinesh eng 4096 Dec 1 2016 install
-rw-rw-r-- 1 dinesh eng 41966 Feb 14 00:30 aclocal.m4
drwxr-xr-x 2 dinesh eng 81 Feb 14 00:30 autom4te.cache
-rwxrwxr-x 1 dinesh eng 606261 Feb 14 00:30 configure
drwxrwxr-x 3 dinesh eng 4096 Feb 14 00:30 bin
drwxrwxr-x 3 dinesh eng 53 Feb 14 00:30 preinstall
drwxrwxr-x 4 dinesh eng 4096 Feb 14 00:30 share
drwxrwxr-x 7 dinesh eng 97 Feb 14 00:30 test
-rw-rw-r-- 1 dinesh eng 26776 Feb 14 00:30 Makefile.in
drwxrwxr-x 9 dinesh eng 4096 Feb 14 00:31 build
-rw-rw-r-- 1 dinesh eng 10 Feb 14 00:35 stamp-h.in
drwxrwxr-x 3 dinesh eng 4096 Feb 23 09:25 conf
drwxrwxr-x 2 dinesh eng 4096 Apr 3 01:34 SCCS
drwxrwxr-x 4 dinesh eng 4096 Apr 3 01:34 doc
drwxrwxr-x 5 dinesh eng 12288 Apr 3 01:48 lib
drwxrwxr-x 3 dinesh eng 4096 Apr 3 01:48 src
drwxrwxr-x 8 dinesh eng 79 Jun 9 02:58 BitKeeper
我想从vim中一次性选择并删除除文件名以外的所有垃圾信息。如何操作?只需使用
Ctrl-v
选择块,然后使用d
使用:help:normal
和简单的normal mode命令将其删除:
:%normal! d8W
这意味着“在缓冲区中的每一行,删除到第8个字”
替换为:
:%s/^\(\S\+\s\+\)\{8}
这意味着“将由一个或多个非空白字符组成的每个高度组序列替换为一个或多个空白字符,从行的开头开始”。Hey VIM support
虚拟块模式
其中,您可以选择数据的列式选择
1:使用vim
打开文件,按Ctrl+v
2:选择所有要删除的列,然后按d
3:要保存文件并退出,请按
:wq
发出以下命令:
:1,$s/.* //g
Stack Overflow是一个关于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。如果您觉得它在其他地方的主题,那么这是一个很好的答案,但是对于他的示例中的符号链接或带有嵌入空格的文件名,它都不能正常工作。在一个命令中完成整个操作的要求有点高。可以转到第一行并发出8dW命令。这一行就行了。然后继续往下走,一次一行,然后按。(句号)。实际上不是。命令应该是这样的::%s/^.{44}//BTW:为什么不先执行“ls-1”?