4

在 Terminal.app 中运行的 VIM 中进入插入模式时,我想将光标形状从下划线更改为垂直。(注意:我知道这是 macvim 下的默认行为。)

此参考: http: //vim.wikia.com/wiki/Change_cursor_shape_in_different_modes提供了有关如何执行此操作的说明。例如,以下内容适用于 iterm2:

let &t_SI = "\<Esc>]50;CursorShape=1\x7"
let &t_EI = "\<Esc>]50;CursorShape=0\x7"

不幸的是,这不适用于 Terminal.app(在 Lion 下)。

Terminal.app 是否有任何技巧 - 或者这只是不支持?

4

3 回答 3

0

我绝对确定我在过去看到过基于 Applescript 的解决方案,但 5 分钟的 google 并没有带来任何东西。这有点野蛮,但似乎奏效了…… IIRC 它动态更改了光标形状偏好,并由autocmd.

继续寻找,它在某个地方。

你有什么理由不想使用 iTerm 吗?

于 2012-08-20T06:33:06.083 回答
0

OP 在 2012 年 8 月提出了这个问题。当时 Terminal.app 不太可能支持将光标形状更改为垂直条的能力,因为 Terminal.app 作为一般规则提供的功能很少不模仿 xterm。(未记录的 OSC 6 和 7 是该规则的唯一例外)。

大约 6 周后, xterm补丁 #282引入了此功能,作为其仿真的扩展DECSCUSR

扩展 DECSCUSR 以提供一种将光标设置为垂直条的方法(Paul Bolle 的补丁)。

记录如下:

CSI Ps SP q
          设置光标样式(DECSCUSR),VT520。
            Ps = 0 ⇒ 闪烁块。
            Ps = 1 ⇒ 闪烁块(默认)。
            Ps = 2 ⇒ 稳定块。
            Ps = 3 ⇒ 闪烁的下划线。
            Ps = 4 ⇒ 稳定的下划线。
            Ps = 5 ⇒ 闪烁条,xterm。
            Ps = 6 ⇒ 稳定条,xterm。

如类似问题(Customize vim cursor style under Mac OS X Terminal , July 2017)中所示,您可以设置 vim 的变量以使用这些转义序列:

let &t_SI="\033[6 q" " start insert mode (steady bar, xterm)
let &t_EI="\033[1 q" " end insert mode
于 2021-03-28T23:23:29.577 回答
0

我自己也遇到了类似的问题,发现这个答案有帮助:

https://superuser.com/questions/712098/customize-vim-cursor-style-under-mac-os-x-terminal

当我开始在 tmux 中运行 vim(仍然使用终端)时,更改光标的命令开始工作!

Tmux 是一个非常酷的终端管理器,它可以让你拥有多个终端窗口、选项卡、分屏,你可以命名它,以及保存你的会话。这是我用来安装它并且有用的一个很好的教程:

http://fideloper.com/mac-vim-tmux

于 2017-02-26T05:17:42.437 回答