小编Pat*_*ity的帖子

oh-my-zsh 历史完成

我最近切换到 zsh,使用robbyrussell 的oh-my-zsh. 在此之前,我将 bash 与许多自定义内容一起使用,但我只遗漏了一件事,因为 zsh 试图“太聪明”:

如果我输入git commit然后?zsh 会执行所有最近的git命令。不过,我真正想要的是执行所有以git commit(不仅仅是git)开头的命令。

我怎样才能在 (oh-my-)zsh 中实现这种行为?

zsh autocomplete oh-my-zsh command-history

54
推荐指数
2
解决办法
3万
查看次数

Vim:在新行中自动注释

当我从注释掉的行开始新行时,Vim 会自动插入注释,因为我已经设置了formatoptions=tcroql. 例如(光标为*):

// this is a comment*
Run Code Online (Sandbox Code Playgroud)

在点击<Enter>(插入模式)或o(正常模式)后,我剩下:

// this is a comment
// *
Run Code Online (Sandbox Code Playgroud)

这个功能在写长的多行注释时非常方便,但通常我只想要单行注释。现在,如果我想结束评论系列,我有几个选择:

  • <Esc>S
  • 打了<BS>三下

这两者都提供了三个按键,再加上<Enter>这意味着一个新行需要四个按键,我认为这太多了。理想情况下,我想再打<Enter>一次:

// this is a comment
*
Run Code Online (Sandbox Code Playgroud)

重要的是该解决方案也适用于不同的缩进级别,即

int main(void) {
    // this is a comment*
}
Run Code Online (Sandbox Code Playgroud)

<Enter>

int main(void) {
    // this is a comment
    // *
}
Run Code Online (Sandbox Code Playgroud)

<Enter>

int main(void) {
    // this is a comment
    *
}
Run Code Online (Sandbox Code Playgroud)

我想我几年前在一些文本编辑器中看到过这个功能,但我不记得是哪一个了。有没有人知道可以在 Vim 中为我执行此操作的解决方案?关于如何推出我自己的解决方案的正确方向的指针也非常受欢迎。

vim comments newlines text-formatting

9
推荐指数
1
解决办法
2453
查看次数

带鼠标选择的 Tmux 复制管道

copy-pipe在 OS X 上使用 Tmux 1.8 共享系统剪贴板:

unbind -t vi-copy Enter
bind -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy"
Run Code Online (Sandbox Code Playgroud)

这在进入选择模式和复制文本(选择文本,然后点击Enter)时有效,但在用鼠标选择文本时无效。是否可以设置一个在鼠标选择后运行的命令,就像copy-pipe点击后运行一样Enter?即我需要reattach-to-user-namespace pbcopy在选择时运行。

mouse clipboard copy-paste tmux macos

5
推荐指数
2
解决办法
3259
查看次数