将tmux与emacs和vim一起使用


16

tmux最好的默认键绑定是什么?为什么有时使用emacs有时使用vim(在Linux Mint 12上)?Ctrl-b可以,但是与bash shell和emacs有点冲突。


一个对您有意义的。?
ЯрославРахматуллин

Answers:


9

我在相关文章中找到了一个很好的答案:屏幕或tmux的最不冲突的前缀/转义序列是什么?

我已经用Ctrl- \了。以下是我的〜/ .tmux-conf:

set-window-option -g mode-keys vi
set-window-option -g window-status-current-bg blue
set-window-option -g automatic-rename on
set-option -g status-keys vi
set-option -g history-limit 100000
set-option -g base-index 1
set-option -s escape-time 0
setw -g mode-mouse on
set-option -g mouse-select-pane on

# We won't worry about sending C-\ to any programs
# bind-key C-\ send-prefix

# hit C-\ twice to go to last window
bind-key C-\ last-window
bind-key b set-option status

bind-key / command-prompt "split-window 'exec man %%'"
# vim's definition of a horizontal/vertical split is reversed from tmux's
bind s split-window -v
bind v split-window -h

# move around panes with hjkl, as one would in vim after pressing ctrl-w
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

# resize panes like vim
bind < resize-pane -L 10
bind > resize-pane -R 10
bind - resize-pane -D 10
bind + resize-pane -U 10

# C-b is not acceptable, due to emacs, bash, and vim
unbind-key C-b
set-option -g prefix C-\

对于Mac,这开箱即用。我回到Ctrl-a并切换到emacs的vim绑定和邪恶模式,因此我不再按ctrl-a开头。
justingordon 2013年

4

我强烈喜欢C-],它与vi绑定不冲突,并且与abort-recursive-editEmacs中的默认绑定冲突。我很少使用这种代码,并且在足够讨厌的情况下,两次输入不是很大的戏。


1

我使用Ctrl- /已有一段时间了,至少在vim / bash中没有发现与任何东西冲突。我不使用emacs,所以我不知道它是否与其中的任何重要内容冲突。

还有一个小小的注释,我相信我必须将它绑定到C-_上才能起作用,因为这是它发送的实际密钥。


C- \和C-_绝对是不同的字符;它们分别是0x1C“文件分隔符”和0x1F“单元分隔符”。请参阅Wikipedia的ASCII控制字符中的表。
克里斯·约翰森

1

我选择了Ctrl + Alt + b,即

unbind C-b
set -g prefix M-C-b

1

我用C- \。请注意,您需要使用单引号将其转义:

unbind-key C-b
set-option -g prefix C-'\'

注意,这与vim的评估表达式快捷键冲突。
mahdix

0

我遇到的最好的解决方案是使用`。导致我出现问题的唯一地方是直接粘贴代码(使用系统缓冲区),否则这是完美的解决方案。

set -g prefix `
bind-key ` send-prefix

0

另一个好主意是去M-F3。它与emacs和vi不冲突,组合非常方便,因为它相当接近用于运行命令和virtualdesktops菜单的M-F2和M-F1。

[我正在使用emacs,并启动一些vim(现在在emacs内部),并使用linuxMint肉桂作为发行版]

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.