【问题标题】:How to remove the carriage return at the end of a vi-copy in tmux如何在 tmux 中删除 vi 副本末尾的回车
【发布时间】:2017-01-26 21:20:40
【问题描述】:

我在 OS X El Capitan 上,目前在我的 tmux.conf 中有以下几行:

setw -g mode-keys vi
bind -t vi-copy v begin-selection
bind -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"

这让我可以从带有<prefix>-y 的 tmux 会话中复制文本。这可以正常工作,除了尾随回车经常被意外复制(感谢@sardorbek-imomaliev!)这导致命令在我完成输入之前运行。

所以我的问题(更新)是,如果我不小心复制了这个回车,如何自动删除它?

【问题讨论】:

  • 回车在这里是因为你复制了它。您应该复制到最后一个字符。因为当您复制整行回车时,会包含在内。
  • @SardorbekImomaliev:哎呀,你说得对。但这是一个很容易犯的错误。也许一个更好的问题是,如果它已被复制,是否有办法剥离这个尾随 CR? (我也会更新问题以反映这一点)

标签: terminal vi tmux


【解决方案1】:

这似乎有效:)

bind -t vi-copy y copy-pipe 'reattach-to-user-namespace tr -d "\n" | pbcopy'

但是,如果这是错误的或在某种程度上具有破坏性,请随时纠正我。

【讨论】:

  • 如果您复制多个字符串,它会将它们合并为一个。所以这个解决方案只适用于单行复制。
  • 这似乎可行(无需将所有内容压缩到一条线上):bind-key -T copy-mode-vi y send-keys -X copy-pipe "perl -pe 'chomp if eof' | pbcopy"。当然,这需要 Perl。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-26
  • 1970-01-01
  • 2012-11-12
  • 1970-01-01
  • 2016-05-21
  • 1970-01-01
相关资源
最近更新 更多