gpt4 book ai didi

python - 如何在 Vim 中转置文件中行和列的内容?

转载 作者:太空狗 更新时间:2023-10-29 17:25:01 25 4
gpt4 key购买 nike

我知道我可以使用 Awk,但我在 Windows 机器上,我正在为可能没有 Awk 的其他人创建一个函数。我也知道我可以编写 C 程序,但我不希望我正在制作的 Vim 小实用程序需要编译和维护。

原始文件可能是:

THE DAY WAS LONG 
THE WAY WAS FAST

转置之后应该变成:

TT
HH
EE

DW
AA
YY

WW
AA
SS

LF
OA
NS
GT

更新

最佳答案

这是一个 Vim 语言的命令。所以你不必编译支持 +python 的 Vim。

function! s:transpose()
let maxcol = 0
let lines = getline(1, line('$'))

for line in lines
let len = len(line)
if len > maxcol
let maxcol = len
endif
endfor

let newlines = []
for col in range(0, maxcol - 1)
let newline = ''
for line in lines
let line_with_extra_spaces = printf('%-'.maxcol.'s', line)
let newline .= line_with_extra_spaces[col]
endfor
call add(newlines, newline)
endfor

1,$"_d
call setline(1, newlines)
endfunction

command! TransposeBuffer call s:transpose()

将其放入 vim/plugin 目录中新创建的 .vim 文件或将其放入您的 [._]vimrc。
执行:TransposeBuffer 转置当前缓冲区

关于python - 如何在 Vim 中转置文件中行和列的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/704130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com