我想进行视觉选择并将其翻转,以便选择的第一行位于底部。从:
<other_stuff>
The
wheels
go
round.
<more_stuff>
视觉选择发送然后翻转:
<other_stuff>
round.
go
wheels
The
<more_stuff>
任何想法如何简单地做到这一点。我宁愿不必安装插件就可以了。
答案 0 :(得分:26)
当您进行视觉选择时,Vim会分别在块的开头和结尾自动生成书签'<
和'>
,这样您就可以通过多种方式完成所需的操作。
在正常模式下:'>dd'<P
作为前命令::'>d | '<-1 put
注意退出可视模式后书签仍然存在,因此您无需保持可视模式即可使用这些书签。
修改强>:
哎呀,我误解了这个问题,并认为你只想把最后一行放在开头,但是你想让整个街区逆转。如果您使用的是unix系统,那么这是最简单的解决方案::'<,'>!tac
这通过unix'obverse cat'程序管道。
答案 1 :(得分:4)
根据:help 12.4
,您可以使用mt
标记第一行,移至您要反转的最后一行,然后使用命令:'t+1,.g/^/m 't
答案 2 :(得分:3)
对于那些对可视模式更满意的人:
1.使用:set nu
确定要翻转的选项上方的行号
2.使用Shift-V
突出显示要翻转的选项(视觉模式)
3. :g/^/m <Line number from step 1>
。
请注意,在可视模式下,它会自动显示为
当您从3输入命令时:'<,'>g/^/m <Line number>
。
此命令的工作原理是将选择一行一行移动到您提供的行号。当第二个项目被推入给定的行号时,它将第一个项目向下推到行号+ 1.然后第三个项目将第一个和第二个项目向下推,依此类推,直到整个列表被推入单个行号,从而导致逆序清单。
答案 3 :(得分:2)
进一步了解Dave Kirby的答案并解决“如何简单地做到这一点”的要求,您可以在.vimrc
文件中创建一个快捷方式。以下示例将F5
键映射到此快捷方式:
map <F5> :'<,'>!tail -r<CR>
或对于OS X:
map <F5> :'<,'>!tac<CR>