Vim Dvorak键绑定(重新绑定:)

时间:2008-10-03 00:30:43

标签: vim keyboard-shortcuts dvorak

虽然之前我玩过它,但我终于开始定期使用Dvorak (Simplified)了。我已经和Vim保持了几年的稳定关系,而且我正试图找出重新映射键绑定的最佳方法,以适应我新发现的Dvorak技能。

如何将Vim的键绑定重新映射到与Dvorak的最佳合作?

鼓励解释!

7 个答案:

答案 0 :(得分:32)

我使用了common recommended keybindings之一:

Dvorak it!
no d h
no h j
no t k
no n l
no s :
no S :
no j d
no l n
no L N
Added benefits
no - $
no _ ^
no N <C-w><C-w>
no T <C-w><C-r>
no H 8<Down>
no T 8<Up>
no D <C-w><C-r>

移动键位于同一位置。其他变化:

  • 删除'd' - &gt;垃圾'j'
  • 下一个'n' - &gt;看'我'
  • 上一页'N' - &gt;回顾'L'

熟悉度也有一些变化,'s'/'S'可用于访问命令模式(:的旧位置,仍然有效)。

增加了好处

  • 行尾'$' - 也 - ' - '
  • 行'^'的开头-also-'_'
  • 向上移动8'T'
  • 向下移动8'H'
  • 下一个窗口<C-w><C-w> -also-'N'
  • 交换窗口<C-w><C-r> -also-'D'

- 亚当

答案 1 :(得分:20)

我没有发现我需要重新映射Dvorak的密钥 - 当我切换布局时,我很快就习惯了使用默认的键绑定。

作为奖励,这意味着当我在Dvorak和Qwerty之间切换时,我不必记住两种不同的组合键。键盘布局的差异足以让我不希望键位于同一位置。

答案 2 :(得分:9)

我只使用标准qwerty命令和dvorak用于插入模式

这是how to set it up

答案 3 :(得分:9)

有点晚了,但我使用以下内容:

" dvorak remap
noremap h h
noremap t j
noremap n k
noremap s l
noremap l n
noremap L N

" easy access to beginning and end of line
noremap - $
noremap _ ^

这基本上可以做到以下几点:

  • 左下 - 右上都在主行的默认手指位置下(即没有像默认的QWERTY Vim映射那样移动一个)
  • l / L用于下一个/上一个搜索结果
  • 使用 - / _到达行的结尾/开头

这似乎对我有用......

答案 4 :(得分:4)

我的重新绑定:

noremap h h
noremap t j
noremap n k
noremap s l
noremap j t
noremap l n
noremap k s
noremap J T
noremap L N
noremap K S
noremap T J
noremap N L
noremap S K

注意:

  • 在qwert中,vi必须使用'h',因为vi不想使用';'一封非字母。但 在dvroak,我们有's',为什么不利用这个优势呢?
  • vi使用Caps进行相对操作。这是一个很好的设计理念。所以我试着 遵守这一点。

含义:

n (Next) -> l (Left) -- "What's left?" resembles "What's next?"
s (Substitute) -> k (Kill then insert)
t (jump Till) -> j (Jump till)
N, S, T are similar.

J (Join lines) -> T (make lines Together)
K (Keyword) -> S (Subject)
L[count] (Line count) -> N (line Number)

B.T.W。 L本身到最后一行,N是最后一个字母。 (感谢tenzu指出这一点。)

P.S。我已经使用了一些这些重新绑定。现在我不在vim中使用它。我只使用默认的。

答案 5 :(得分:2)

Vim附带了一个广泛的Dvorak脚本,但不幸的是它不能直接source - 因为该文件包含几行指令和另一个撤消其效果的脚本。要阅读它,请发出以下命令:

:e $VIMRUNTIME/macros/dvorak

答案 6 :(得分:1)

您可以将其用于have Vim use Dvorak only in insert mode:

:set keymap=dvorak

这样所有命令仍然在QWERTY中,但您键入的所有内容都将在Dvorak中。

警告:好吧,几乎所有事情。插入模式,搜索模式和替换模式都将是dvorak,但ex命令不会。这意味着您不必重新学习:wq,但在QWERTY中需要输入:%s/foo/bar/gc

如果您只想移动某些命令,这将无济于事,但我发现在我的脑海中,“向前移动一个单词”必然会“向左移动无名指”,而不是“询问打字部门在哪里字母'w'然后按下它,“这使我的方法更容易。