在复制模式下,我希望键盘导航键自动选择整个当前行。理想情况下,所选行将在选择/复制/粘贴时被修剪。
例子
我经常想选择整个、修剪过的线条来选择输出git <anything>
等等ls -1
:
# git status
Untracked files:
(use "git add <file>..." to include in what will be committed)
robots.txt
index.php
[...]
我想要提交 robots.txt,因此我进入复制模式,并开始将光标移向 robots.txt 行。向上移动后,它首先选择index.php
:
# git status
Untracked files:
(use "git add <file>..." to include in what will be committed)
robots.txt
**index.php** (<-- text between ** is auto selected)
[...]
# git status
然后将光标向上移动(使用键盘)它会选择带有 robots.txt 的行(已修剪):
Untracked files:
(use "git add <file>..." to include in what will be committed)
**robots.txt** (<-- text between ** is auto selected)
index.php
[...]
当前版本的 tmux 可以做到这一点吗?
答案1
解决方案
C-Up
这是一个在/上执行“向上/向下并选择修剪线”的宏C-Down
(通常是 Control + Up / Control + Down):
在 tmux 中通过 进入命令模式C-b :
,然后使用以下代码:
bind -T copy-mode C-Up send-keys Up \; send -X back-to-indentation \; send -X begin-selection \; send -X end-of-line
bind -T copy-mode C-Down send-keys Down \; send -X back-to-indentation \; send -X begin-selection \; send -X end-of-line
要复制并粘贴文本,请按下C-w
并C-b ]
要旨
错误修复、增强等: https://gist.github.com/mklepaczewski/ee9c4cd85f678859c90844ef18ac8ceb
演示
后git status
:
经过C-b [
3x之后C-Up
:
C-w
现在只需复制然后C-b ]
粘贴即可