Articles of vim

当在node.js中的subprocess中使用vim时,stdio /pipe道问题

我正在使用node.js编写一个命令行界面来生成unit testing文件。 我一直在使用查询器获取用户input,但是有一个字段,用户很可能希望复制粘贴和/或编辑JSON数据的大型多行块。 因此,我的目标是:在CLI中打开vim @某个点 – >允许input – >closuresvim – >写出tmp文件 – >处理结果。 问题是vim的input也会转到父标准input,当返回键被input时,程序继续在vim(混乱)之上。 我很确定stdio / in / out / err没有正确设置,但我似乎无法find确切的解决scheme。 我操纵stream的每一次迭代似乎更接近,但是我知道有一个小的缺失的连接。 我已经尝试了很多东西: var vim = child_process.spawn('vim', [path], {stdin: 'pipe', stdout: 'pipe', stderr: 'pipe'}); var vim = child_process.spawn('vim', [path], {stdio: 'inherit'}); //{stdio: ['pipe','pipe','pipe']} 最后,我从这个例子中跟踪了很多stdio操作, 我如何从node.js打开一个terminal应用程序? ,但仍然有一些小的缺失的链接,我需要帮助 笔记: 我99%确定我的asynchronous承诺是有序的。 它不一定是vim,因为我正在首先检查编辑器的ENV 我把它比作git commit,在编辑器popup并允许input之前closures 在一个小的testing程序中,我可以得到完美的function,但是当试图通过另一个过程来做到这一点时,它不会很好 tl; dr:我想忽略父进程而input只去vim(child_process),但我不能让他们分开,正因为如此,程序去haywire 如果有什么我可以澄清,请让我知道。 […]

Vim Javascript缩进内函数

我一直在为我的主编使用MacVim。 我主要使用它的javascript,express.js是具体的,有一件事是困扰我的是它的缩进。 我想缩进这样做: app.get('/', function(req, res) { res.send("Hello, world!"); }); 但现在是这样做的: app.get('/', function(req, res) { res.send("Hello, world!"); }); 我不知道为什么这样做。 而额外的信息,这是我的.vimrc: execute pathogen#infect() set tabstop=4 set smartindent set autoindent 我也有通过病原体安装。 请帮帮我。 谢谢。

使用vim和CoffeeScript进行节点检查

我在npm的帮助下按以下方式安装了node-inspector: npm install –prefix /home/uqmlore1/apps/node_modules -g node-inspector 现在,我只是想知道这个插件是否适用于节点检查器。 如果是的话,可以把以下命令集成到Vim中? node-inspector & coffee –nodejs –debug app.coffee & google-chrome http://127.0.0.1:8080/debug?port=5858 & google-chrome http://127.0.0.1:3000 &

如何添加.js或.cpp做vim showcut key gf之前?

在像nodejs这样的编程语言中,当我们使用require函数时,不需要添加.js扩展名。 喜欢这个: var Assert = require('./app_base'); 在vim中,当我做gf ,它说在这个path下找不到app_base如果我提到app_base.js而不是app_base 。 我不想在./app_base的结尾添加.js ,例如./app_base.js但是我想在gf时候findapp_base.js ,我该怎么做?

在terminal中停止节点服务器并返回到vim中的文件

我是Node和vim的新手。 我有以下代码文件,在vim中打开server.js: var http = require("http"); function onRequest(request, response) { console.log("Request received"); response.writeHead(200, {"Content-Type": "text/plain"}); response.write("Hello World"); response.end(); } http.createServer(onRequest).listen(8888); console.log("Server has started"); 当我进入vim“命令”模式并input: :!node server.js 事情按预期工作(我认为)。 窗口切换到标准的terminal窗口,如果我打开一个浏览器并导航到端口8888上的本地主机,则会显示愚蠢的“Hello World”文本。 terminal显示“服务器已启动”文本以及收到请求的输出。 一切都很好。 当我closures浏览器窗口,并键入Ctrl-z to停止节点服务器,terminal显示[1}+ stopped vim server.js ,但不会返回我的代码文件在vim中。 如果我通过inputvim返回到vim,vim将打开到同一个目录,但是我的文件没有打开。 如果我尝试打开文件,vim抱怨重复的交换文件。 很明显,我可以使用[R] ecover选项,但似乎我缺less一个步骤。 我在这里错过了什么? 我search了一下,然后search到了,但是我不确定这个问题的标题以外有什么要求(这个问题没有提出我正在寻找的答案,如果是的话,我也没有认出来)。 我只是新的,我不确定是否缺less有关terminal,vim或* nix的信息。 提前致谢 。 。 。 更新:它发生在我身上我从来没有清楚地说明我是什么 – 我想停止在terminal服务器,并返回到VIM打开的文件。 正如Tadman在下面提到的,我知道我可能试图打开一个额外的编辑器实例。 我不清楚的是如何返回到现有的实例。 现在试着Tadman的build议。

在node.js中编写一个git post-commit文件

我正在尝试在node.js中编写一个git post-commit文件,并遇到了麻烦。 该文件似乎必须在.git/hooks目录中命名为post-commit 。 由于该文件不能有扩展名,我的vim编辑器不会持久地给它javascript语法突出显示,因此我的代码片段都无法工作,并且出现了各种各样的其他挑战。 我能做什么? 告诉git运行post-commit.js或者告诉vim考虑这个文件的javascript,但是这并不会持久。 思考?

Express.js,Node.js Jade vim

帮助,之前我把我的美丽,昂贵的MacBook Pro在一个恼人的地面。 我正在尝试在Expressjs中使用某些东西,这真的让我感到很紧张。 我正在关注这个教程:expressjs.com/screencasts.html Screencast 2: 我得到这个错误信息: performance 500错误:/home/duncan/helloExpress/views/users.jade:4 2 | p#users 3 | – 用户中的每个用户> 4 | li user.name 5 | 预计“缩进”,但得到“换行” * 2 | p#用户 * 3 | – 用户中的每个用户 *> 4 | li user.name * 5 | * *预计“缩进”,但得到“换行” *在Object.expect(/usr/local/lib/node/.npm/jade/0.10.6/package/lib/parser.js:131:13) *在Object.parseBlock(/usr/local/lib/node/.npm/jade/0.10.6/package/lib/parser.js:330:10) *在Object.parseEach(/usr/local/lib/node/.npm/jade/0.10.6/package/lib/parser.js:289:64) *在Object.parseExpr(/usr/local/lib/node/.npm/jade/0.10.6/package/lib/parser.js:175:21) *在Object.parseBlock(/usr/local/lib/node/.npm/jade/0.10.6/package/lib/parser.js:335:25) *在Object.parseTag(/usr/local/lib/node/.npm/jade/0.10.6/package/lib/parser.js:425:26) *在Object.parseExpr(/usr/local/lib/node/.npm/jade/0.10.6/package/lib/parser.js:163:21) *在Object.parse(/usr/local/lib/node/.npm/jade/0.10.6/package/lib/parser.js:114:25) *在parsing(/usr/local/lib/node/.npm/jade/0.10.6/package/lib/jade.js:179:62) *在Object.compile(/usr/local/lib/node/.npm/jade/0.10.6/package/lib/jade.js:224:7) 请帮助,我得到它正在得到一个换行符,当它期待缩进为什么? 而我该如何解决盛开的事情! 我的users.jade如下所示: […]

跳转到vim中的节点文档

所有, 我最近开始做一些JavaScript编码。 我使用了Python模式的vim插件 ,我正在寻找一个类似function的javascript插件。 我已经获得了大部分重要的东西,所以我最喜欢的是一个可以直接跳转到内置库的文档的插件。在python模式下,这是通过将光标放在函数调用并按下D 。 它打开与文档的内容的新的分裂。 Cursory谷歌search没有透露任何类似的javascript / node.js所以我想知道是否有可用的东西,或者如果我需要推出自己的。

使用NVM的Vim的Tern JS

我想让Tern JS在OS X 10.10.x的Vim上工作。 我目前正在使用NVM,而Tern JS文档声明你不能使用NVM。 警告:因为节点进程不是使用标准shell运行的,所以> node.js的NVM版本将不起作用。 您需要全局节点可执行文件。 我不知道如何解决这个问题。 我是否需要安装节点“常规”的方式或有没有更好的方法来解决这个问题? 谢谢!

Jsctags不工作

我安装了jsctags ,但是当我根据其使用部分使用它时,会以此错误结束。 需要安装node.js并将其位置添加到$PATH 。 我使用apt-get作为Ubuntu包安装了node.js ,文件nodejs位于我的$PATHvariables中的/usr/bin中。 你知道什么是错的,以及如何使jsctags工作? 谢谢