小编mic*_*ael的帖子

在 Vim 中映射管道 Shell 命令

在上一个问题中,我询问了将评估代码输出到 MacVim 中的新窗口。我得到了一个很好的解决方案,但它提出了另一个问题:如何在我.vimrc的外壳中映射涉及管道输出的关键命令?

作为一个简单的例子,假设我想将结果通过管道ls -a传输到一个新的 MacVim 窗口。我可以从 Vim 命令行输入!ls -a | mvim -,结果将出现在新窗口中。伟大的!现在,我将其添加到我的.vimrc

 nmap <Leader>r :w !ls | mvim -<CR>
Run Code Online (Sandbox Code Playgroud)

现在,每次我尝试获取 my 的源时.vimrc,Vim 都会抛出一个错误,内容如下:

E492: Not an editor command:  mvim -<CR>
Run Code Online (Sandbox Code Playgroud)

关于如何克服这个问题的任何想法?

mac vim shell

12
推荐指数
1
解决办法
2432
查看次数

Vim - 在新窗口中显示代码输出 á la Textmate?

几个月前,我从 Textmate 切换到 Vim。总的来说,我真的很喜欢 Vim,但我从 Textmate 中错过的一件事是使用 ⌘R 命令来运行 Ruby 代码,并在一个新的可滚动窗口中整齐地弹出结果。显然,Vim 能够运行 Ruby 代码并使用:w !ruby. 唯一的缺点是,如果结果输出太长,我无法滚动浏览它。

为了解决这个问题,我尝试修改Vim Tips 中的一个:redir函数。它看起来像这样:

function! TabMessage(cmd)
  redir => message
  silent execute a:cmd
  redir END
  tabnew
  silent put=message
  set nomodified
endfunction
command! -nargs=+ -complete=command TabMessage call TabMessage(<q-args>)
Run Code Online (Sandbox Code Playgroud)

现在 Ruby 的输出被放入一个新选项卡中。但是,我无法让它在一个新的、单独的窗口中弹出。更改tabnewnew仅将输出发送到同一窗口中的拆分。

另一个问题是一个visible^M被附加到每一行的末尾,所以输出最终看起来像这样,这有点麻烦:

Hello World!^M
Run Code Online (Sandbox Code Playgroud)

那么,有没有办法将输出放入单独的窗口而不^M附加到末尾?我应该使用任何插件来实现这种类似 Textmate 的代码输出效果吗?

vim gvim macvim

6
推荐指数
1
解决办法
2066
查看次数

Emacs 中的多种背景颜色?

我正在尝试设置我的 emacs 配色方案,就像在 Textmate 中一样。目前,变量、方法和注释的背景颜色与主体不同。有关示例,请参见以下链接。

这在 emacs 中可能吗?

在此处输入图片说明

emacs textmate

3
推荐指数
1
解决办法
406
查看次数

Excel - 基于我粘贴公式的行的动态行引用?

我有一个简单的、经常使用的公式,我将它作为纯文本粘贴到我收到的电子表格中。它看起来像这样:

=IF(D8="FOO", "BAR", "BAZ")
Run Code Online (Sandbox Code Playgroud)

它在 D8 中查找单词“FOO”。如果找到它,它将显示“BAR”。如果不是,它会显示“BAZ”

它工作得很好。问题是我必须将此公式作为纯文本粘贴到许多电子表格中。它应该总是在 D 列中查找“FOO”,但是我并不总是希望它在第 8 行中查找。我希望它查看我将其粘贴到的任何行。

例如,如果我将上述公式粘贴到第 25 行,例如,我希望它自动更改为:

=IF(D25="FOO", "BAR", "BAZ")
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这一目标?

spreadsheet microsoft-excel

2
推荐指数
1
解决办法
9060
查看次数

标签 统计

vim ×2

emacs ×1

gvim ×1

mac ×1

macvim ×1

microsoft-excel ×1

shell ×1

spreadsheet ×1

textmate ×1