我使用 vim 来记录我的很多日常工作。我通常会用矩阵得到很多结果。当我在一天结束时粘贴这些内容时,我有(有时)0ne 或 2 列矩阵的页面
我的问题是如何让 vim 以编程方式格式化 这个:
R) DT = data.frame(x=rnorm(6),y=rnorm(6))
R) DT
x y
1 -0.0007499 0.7661
2 1.5559552 -0.6664
3 0.2082094 -0.1598
4 -0.1684766 -0.0536
5 3.1014233 -0.7439
6 0.1985104 2.0415
R) DT2 = data.frame(x=rnorm(7),y=rnorm(7))
R) DT2
x y
1 -0.005116 -0.4388
2 2.317381 0.6597
3 0.359883 0.4770
4 -1.426220 0.4911
5 0.468820 -0.3260
6 0.626147 -0.6254
7 -1.086660 2.1973
到此:并排
R) DT = data.frame(x=rnorm(6),y=rnorm(6)) R) DT2 = data.frame(x=rnorm(7),y=rnorm(7))
R) DT R) DT2
x y x y
1 -0.0007499 0.7661 1 -0.005116 -0.4388
2 1.5559552 -0.6664 2 2.317381 0.6597
3 0.2082094 -0.1598 3 0.359883 0.4770
4 -0.1684766 -0.0536 4 -1.426220 0.4911
5 3.1014233 -0.7439 5 0.468820 -0.3260
6 0.1985104 2.0415 6 0.626147 -0.6254
7 -1.086660 2.1973
编辑:
谢谢大家,肯特解决方案有效,奇怪的是在set ve=all
之前我的C-Q
不允许选择像
############
###############
#########
#########
#########
我无法到达第二行的最后一列(在 win XP
上使用 gvim
)。
现在效果很好
我还将使用 Ingo Karkat
插件”
最佳答案
尝试以下步骤:
:set ve=all
将光标移至行首R) DT2 = data.frame(x=rnorm(7),y=rnorm(7))
按C-V
,然后使用运动魔法选择第二个 block
按d
将光标移动到第一行,即要粘贴第二个 block 的位置。类型p
如果您的文本始终采用该格式,您可以尝试以下映射:
:nnoremap <leader>mt :let &ve='all'<cr>gg/^R)<CR>n<c-v>G$dgg$3lp
然后你可以在正常模式下输入 <leader>mt
进行转换。
注意
我没有 Windows 上的 vim 经验...因此您可能需要更改 Windows 逐 block 选择的映射。
<C-Q>
?不确定。我假设文件的第一行是
R)...
这会将第二个 block 粘贴到位置:第一行末尾后 3 个空格,如果要调整,请更改映射中的数字 3
关于vim - 我怎样才能让vim并排格式化矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14601309/