微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用vim打开目录下的每个.txt文件(使用Bash)

我正在尝试以下方法使用 vim打开当前目录下的每个txt文件.

find . -name "*.txt" -print | while read aline; do
  read -p "start spellchecking fine: $aline" sth
  vim $aline
done

在bash中运行它会抱怨

Vim: Warning: Input is not from a terminal
Vim: Error reading input,exiting...
Vim: Finished.

任何人都可以解释可能出错的地方吗?另外,我打算在使用vim之前使用read -p进行提示,但没有成功.

解决方法

尝试:

vim $( find . -name "*.txt" )

要修复您的解决方案,您可以(可能)执行以下操作:

find . -name "*.txt" -print | while read aline; do
      read -p "start spellchecking fine: $aline" sth < /dev/tty
      vim $aline < /dev/tty
done

问题是整个while循环从find获取其输入,并且vim继承该管道作为其stdin.这是一种让vim输入来自终端的技术. (但并非所有系统都支持/ dev / tty.)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐