我正在尝试从命令行自动缩进 .lisp 文件,利用 vim+slimv 进行缩进。
我尝试编写脚本:
vi -c 'call SlimvConnectSwank()' -c 'normal gg=G' -c 'wq' -c 'q!' temp.lisp
但是没有查询 swank 服务器进行缩进,所以这只是将文件缩进到 .lisp vim 默认值(如果 slimv 和服务器没有运行)。
我需要在调用连接到 swank 服务器之后放置某种延迟/等待 -c 命令吗?似乎整个 vi 进程关闭得太快了,并且没有给 swank 连接的机会。如果 swank 连接发生在单独的线程上,我想可能是这种情况。
想法/评论/建议表示赞赏。
谢谢!
塔马斯明白了。它是(我检查了这一点,实际上两者都是需要的;真的:))一个睡眠命令和 swank 命令让它工作。
我将它添加到我的 .bashrc 并将其别名为“ai”,以便我可以轻松地从命令行缩进 .lisp 文件:
alias ai="vi \
-c 'call SlimvConnectSwank()' \
-c 'sleep 1' \
-c 'call SlimvEval(['0'])' \
-c 'normal gg=G' \
-c 'wq' \
-c 'q!'"
现在 'ai temp.lisp' 自动将 temp.lisp 缩进到 slimv+vim+swank 等标准。
一旦您使用 bash 命令为一个文件执行此操作,就可以通过各种方式编写脚本以自动缩进 lisp 文件的存储库。