我想复制多行的第一个单词。
代码示例:
DELETE FROM databasetable WHERE collumA LIKE '%Test7%'
-- Here --------------------------------^
我想把它放在我的剪贴板中:
apiKey := fmt.Sprintf("&apiKey=%s", args.ApiKey)
maxCount := fmt.Sprintf("&maxCount=%d", args.MaxCount)
id := fmt.Sprintf("&id=%s", args.Id)
userid := fmt.Sprintf("&userid=%s", args.Userid)
requestFields := fmt.Sprintf("&requestFields=%s", args.RequestFields)
答案 0 :(得分:10)
您可以使用
将每个第一个单词附加到空的寄存器(假设为q
)
:'<,'>norm! "Qyiw
也就是说,在视觉选择的每一行中,执行"Qyiw
normal
命令序列以将(第一个)“内部词”附加到q
寄存器。
您需要在>
中设置cpoptions
才能在yanks(:set cpoptions+=>
)之间添加换行符,否则这些字词将在一行中连接。
如果您想快速清空注册表,可以在正常模式下使用qqq
(或qaq
清空注册表a
)。
注意:未命名的注册表(""
)也会在操作结束时包含您想要的内容,因此您无需"qp
将其粘贴,p
将做。
答案 1 :(得分:1)
我认为所选择的答案非常好,在寄存器中添加匹配的想法在其他场景中也非常有用。
也就是说,完成此操作的另一种方法可能是先将右侧对齐,然后进行复制,然后撤消对齐。您可以使用https://github.com/jkuri/ng2-file-manager,tabular或Align等工具。
使用表格,标记区域并执行:Tab/:
将导致:
apiKey : = fmt.Sprintf("&apiKey=%s", args.ApiKey)
maxCount : = fmt.Sprintf("&maxCount=%d", args.MaxCount)
id : = fmt.Sprintf("&id=%s", args.Id)
userid : = fmt.Sprintf("&userid=%s", args.Userid)
requestFields : = fmt.Sprintf("&requestFields=%s", args.RequestFields)
您现在可以使用可视块模式选择第一部分,然后使用u
撤消对齐。
答案 2 :(得分:1)
依靠外部cut
程序:
:'<,'>!cut -d' ' -f1