perl - 如何使用 VIM 修复 perl 语法错误 "missing right curly or square bracket"?

标签 perl vim syntax-error

使用不匹配的数组大括号 ("[ ]") 或范围括号 ("{ }") 编译(或执行)perl 程序会导致“缺少右花括号或方括号”语法错误。 Perl 经常将源报告为您的最后一个代码行(“在 EOF”),这可能与实际缺失的部分相去甚远。

示例 perl 错误消息:

Missing right curly or square bracket at ./foo.pl line 100, at end of line
syntax error at ./foo.pl line 100, at EOF
Execution of ./foo.pl aborted due to compilation errors.

vi 或 Vi IMproved (VIM) 用户如何解决此错误消息?我添加了一些 VIM 增强的答案。请添加您自己的想法、实践或 vi 插件。

注意:使用 VIM 版本发布的原始问题没有突出显示 perl 大括号和方括号。许多较新的版本都是这样做的;见 vim.org了解更多信息。

最佳答案

如何立即解决此错误:

  • 在 VIM 中,选择一个开头的 {、[ 或 ( 符号。% 命令在匹配的 { }、[ ] 和 ( ) 对之间跳转。不匹配将跳转到意外的位置。
  • 安装 perltidy ,运行它,然后寻找奇怪的缩进代码块。

  • 如何防止 future 的错误:
  • StackOverflow question 719476显示如何修改大括号/括号的 VIM 大括号/括号语法着色。 (有些版本默认不这样做。)
  • Karl Guertin's AutoClose plugin键入时自动匹配 [, (, {, ", ' 符号。
  • perltidy脚本重新格式化 perl 以提高可读性,这可能会暴露不匹配的符号。
  • 用户 a paid nerd说:“在 VIM 编辑器中使用 perltidynmap 。”nmap \g mt:%!perltidy<CR>'t
  • 使用一致的 {} 匹配缩进(一般提示,不特定于此 perl 错误)。
  • sub foo {
    ...
    }
    
    或者
    sub bar
    {
    ...
    }
    

    关于perl - 如何使用 VIM 修复 perl 语法错误 "missing right curly or square bracket"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1793305/

    相关文章:

    arrays - 从文件中读取多级哈希并将特定值推送到单独的数组

    perl - Perl 面向对象设计模式

    vim - 移动到最后一个字符

    python - 为什么 Maya 2009 TreeView 控件在拖动时出现语法错误?

    java - 在运行 Strawberry Perl 的 Windows 上安装 Inline::Java 的问题

    linux - 反引号命令中的独立子项

    sorting - 如何在 Vim 中对逗号分隔的单词进行排序

    vim - gvim 外壳问题

    perl - 安装 Perl mod 后,不断收到错误 "Can' t locate Image/Grab.pm in @INC”

    Python IOError : File not open for writing and global name 'w' is not defined 错误