You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Fish Shell的可视模式下部分选中输入文本?

Fish Shell Vi可视模式选中文本复制粘贴配置方案

核心操作逻辑(和Vim一致)

Fish Shell的Vi模式默认支持可视选中文本,按以下步骤操作即可实现片段复制粘贴:

  1. 插入模式输入内容后,按jk/kj切换到普通模式
  2. 普通模式下按v进入可视模式,光标位置即为选中起始点
  3. 用光标键(h左移/l右移)或Vim风格移动键(w跳至下一个单词开头、e跳至当前单词结尾、b回退至上一个单词开头)选中目标文本,选中区域会高亮显示
  4. 按y复制选中内容,按p完成粘贴

调整你的config.fish配置

你当前的可视模式绑定针对yy且依赖xsel,可以优化为更贴合Vim习惯的绑定,同时兼容系统剪贴板:

# Use Vi keybindings
function my_vi_bindings
  fish_vi_key_bindings
  # 普通模式:整行复制
  bind -M normal yy fish_clipboard_copy
  bind -M normal Y fish_clipboard_copy
  # 全模式:粘贴
  bind -M normal p fish_clipboard_paste
  bind -M visual p fish_clipboard_paste
  # 插入模式:快速切换到普通模式
  bind -M insert -m default kj backward-char force-repaint
  bind -M insert -m default jk backward-char force-repaint
  # 可视模式:复制选中内容(Vim风格单键y)
  bind -M visual y fish_clipboard_copy
  # 可选:可视模式也支持yy整行复制
  bind -M visual yy fish_clipboard_copy
end
set -g fish_key_bindings my_vi_bindings

关键说明

  • fish_clipboard_copy是Fish内置函数,会自动识别可视模式下的选中内容,无需手动处理命令行文本,跨平台兼容性更好(替代你之前的xsel命令)
  • 若坚持使用xsel,可把可视模式的y绑定改为:
    bind -M visual y 'commandline --selection | xsel -ib; commandline -f end-selection repaint-mode'
    
    其中commandline --selection专门获取可视模式的选中内容,xsel -ib负责将内容写入系统剪贴板

内容的提问来源于stack exchange,提问作者ReneFroger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 11:35:02