Textmate和vim模式

时间:2009-12-08 14:00:07

标签: macos vim textmate

可以在textmate中模拟vim模式,宏和绑定吗?

4 个答案:

答案 0 :(得分:9)

我曾经喜欢TextMate,但在最终给它一个机会后改为Vim。 ViMate存在,我有点觉得好笑。但是,根据我的经验,vi输入模式有点昙花一现。 (示例:emacs中的viper模式。它很接近,但还不足以让我开始使用emacs。此外,OS X的系统范围的键绑定。)我将有兴趣看看如何事实证明。

如果您正在寻找的是通过TextMate“Mac集成的Vim”,您也可以尝试MacVim。这是真正的Vim,但它有Mac键绑定,看起来更漂亮。 :)(就像gvim,但我相信用Cocoa编写。)

答案 1 :(得分:6)

您可以使用ViMate。

http://www.macupdate.com/info.php/id/27072

这是ViMate中已实现的功能列表。希望这会有所帮助。

实施

运动
  • k - moveUp
  • j - moveDown
  • l - moveForward
  • h - moveBackward
  • w - moveWordForward
  • b - moveWordBackward
  • e - moveToEndOfWord
  • 0 - moveToBeginningOfLine
  • $ - moveToEndOfLine
  • [移动] - 移动次数

插入
  • a - insertForward(不可重复)
  • i - insertBackward(不可重复)
  • o - insertBelow(不可重复)
  • O - insertAbove(不可重复)
  • d - cutSelection
  • dd - cutLine(不可重复)
  • dl,x - cutForward(不可重复)
  • dh,X - cutBackward(不可重复)
  • dw - cutWordForward(不可重复)
  • db - cutWordBackward(不可重复)
  • de-cutToEndOfWord(不可重复)
  • d0 - cutToBeginningOfLine
  • D,d $ - cutToEndOfLine
复制
  • y - copySelection
  • yy - copyLine(不可重复)
  • yl - copyForward(不可重复)
  • yh - copyBackward(不可重复)
  • yw - copyWordForward(不可重复)
  • yb - copyWordBackward(不可重复)
  • ye - copyToEndOfWord(不可重复)
  • y0 - copyToBeginningOfLine
  • y $ - copyToEndOfLine
更改
  • c - changeSelection
  • cc - changeLine(不可重复)
  • cl - changeForward(不可重复)
  • ch - changeBackward(不可重复)
  • cw - changeWordForward(不可重复)
  • cb - changeWordBackward(不可重复)
  • ce - changeToEndOfWord(不可重复)
  • c0 - changeToBeginningOfLine
  • c $ - changeToEndOfLine
  • P - pasteBefore(hacky near file of file)
  • p - pasteAfter(hacky接近文件末尾)
滚动
  • ctrl-e - scrollLineDown(不可重复,不会在视图中保留插入符号)
  • ctrl-y - scrollLineUp(不可重复,不会在视图中保留插入符号)
  • ctrl-f - scrollLineDown(不可重复,不会在视图中保留插入符号)
  • ctrl-b - scrollLineUp(不可重复,不会在视图中保留插入符号)

答案 2 :(得分:1)

@TK以下是来自Starving Cyclist的完整ViMate命令列表:

Movement:
k - moveUp
j - moveDown
l - moveForward
h - moveBackward
w - moveWordForward
b - moveWordBackward
e - moveToEndOfWord
0 - moveToBeginningOfLine
$ - moveToEndOfLine
#[movement] - move # number of times
Insert:
a - insertForward (not repeatable)
i - insertBackward (not repeatable)
o - insertBelow (not repeatable)
O - insertAbove (not repeatable)
Cut:
d - cutSelection
dd - cutLine (not repeatable)
dl,x - cutForward (not repeatable)
dh,X - cutBackward (not repeatable)
dw - cutWordForward (not repeatable)
db - cutWordBackward (not repeatable)
de - cutToEndOfWord (not repeatable)
d0 - cutToBeginningOfLine
D,d$ - cutToEndOfLine
Copy:
y - copySelection
yy - copyLine (not repeatable)
yl - copyForward (not repeatable)
yh - copyBackward (not repeatable)
yw - copyWordForward (not repeatable)
yb - copyWordBackward (not repeatable)
ye - copyToEndOfWord (not repeatable)
y0 - copyToBeginningOfLine
y$ - copyToEndOfLine
Change:
c - changeSelection
cc - changeLine (not repeatable)
cl - changeForward (not repeatable)
ch - changeBackward (not repeatable)
cw - changeWordForward (not repeatable)
cb - changeWordBackward (not repeatable)
ce - changeToEndOfWord (not repeatable)
c0 - changeToBeginningOfLine
c$ - changeToEndOfLine
Paste:
P - pasteBefore (hacky near end of file)
p - pasteAfter (hacky near end of file)
Scroll:
ctrl-e - scrollLineDown (not repeatable, doesn't keep caret in view)
ctrl-y - scrollLineUp (not repeatable, doesn't keep caret in view)
ctrl-f - scrollLineDown (not repeatable, doesn't keep caret in view)
ctrl-b - scrollLineUp (not repeatable, doesn't keep caret in view)
Visual Mode:
V - highlight line
v - visual mode
Repeat:
1,2,3... - repeat next command (buggy)

答案 3 :(得分:1)

试试VicoApp。它与textmate类似,并且支持许多Vim键绑定。