有很多关于如何配置 Vim/GVim Perl开发 on PerlMonks.org的线程。我的目的是发布这个问题是尝试尽可能创建一个理想的配置Perl开发使用Vim / GVim。请发布您的建议.vimrc设置以及有用的插件。

我将尝试将建议合并到一组.vimrc设置和推荐的插件,ftplugins和语法文件的列表。

.vimrc设置

"Create a command :Tidy to invoke perltidy"
"By default it operates on the whole file,but you can give it a"
"range or visual range as well if you kNow what you're doing."
command -range=% -nargs=* Tidy <line1>,<line2>!
    \perltidy -your -preferred -default -options <args>

vmap <tab> >gv    "make tab in v mode indent code"
vmap <s-tab> <gv

nmap <tab> I<tab><esc> "make tab in normal mode indent code"
nmap <s-tab> ^i<bs><esc>

let perl_include_pod   = 1    "include pod.vim Syntax file with perl.vim"
let perl_extended_vars = 1    "highlight complex expressions such as @{[$x,$y]}"
let perl_sync_dist     = 250  "use more context for highlighting"

set nocompatible "Use Vim defaults"
set backspace=2  "Allow backspacing over everything in insert mode"

set autoindent   "Always set auto-indenting on"
set expandtab    "Insert spaces instead of tabs in insert mode. Use spaces for indents"
set tabstop=4    "Number of spaces that a <Tab> in the file counts for"
set shiftwidth=4 "Number of spaces to use for each step of (auto)indent"

set showmatch    "When a bracket is inserted,briefly jump to the matching one"

句法

> vim-perl: Support for Perl 5 and Perl 6 in Vim

插件

> delimitMate provides auto-completion for quotes,parens,brackets,etc. in insert mode.它比closepairs.vim处理撇号更智能。
> perlhelp.vim: Interface to perldoc
> taglist.vim: Source code browser

ftplugins

> perldoc.vim: perldoc command from vim

CPAN模块

> Vim::X

调试工具

我刚刚发现了大约VimDebug.我还没有能够在Windows上安装它,但看起来很有前途的描述。

解决方法

从 chromatic’s blog(略微适应能够使用从所有模式的相同映射)。
vmap,pt :!perltidy<CR> 
nmap,pt :%! perltidy<CR>

命中,pt在正常模式下清理整个文件,或在视觉模式下清理选择。您还可以添加:

imap,pt <ESC>:%! perltidy<CR>

但不建议使用输入模式下的命令。

您对Perl开发的理想Vim配置有什么建议?的更多相关文章

  1. Xcode iOS Notability“缩放框”

    Notability和其他笔记应用程序具有此“缩放框”功能,您可以在底部的放大框中绘制.用户还可以拖动顶部的框以更改底部放大的内容.我已经尝试了我能想到的所有内容,以便在我的应用中添加此功能.我在两个视图中添加了相同的文档,但后来我遇到了很多内存问题,我已经复制了文件但是再次出现了内存问题.有谁知道一个简单的方法来做到这一点?

  2. Swift快速入门五集合

    相关文章Swift快速入门(一)第一个Swift程序Swift快速入门(二)基本数据类型Swift快速入门(三)运算符Swift快速入门(四)流程控制前言Swift提供了数组和字典两种集合类型来存储数据,Swift的数组用来存储顺序相同类型相同的类型,字典则采用kay-value的形式存储数据。修改字典字典提供了updataValue()方法来修改字典的value值,该方法会返回一个Sting?

  3. Ubuntu Server 20.04 LTS 环境下搭建vim 编辑器Python IDE的详细步骤

    这篇文章主要介绍了Ubuntu Server 20.04 LTS 环境下搭建vim 编辑器Python IDE,首先是安装配置vim-plug及安装coc.nvim插件,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  4. PHP+javascript模拟Matrix画面

    直接存为*.php文件运行即可。

  5. PHP也可以當成Shell Script

    不过﹐这次要讲的主题不是PHP在网页设计上的应用﹐而是PHP在ShellScript上的应用﹐一般所知的ShellScript大约就是tcsh、bash、perl或是python这几类语言﹐我所要谈的就是将PHP当成ShellScript来使用。第一个程序开始撰写我们的第一个PHPShellScript程序﹐这个例子印出"Helloworld!>注意到PHP原本是应用在网页应用的﹐因此它内定会送出HTML的HEADER﹐但是在此我们是要将PHP用作ShellScript﹐"-q"就是表示不要送出HEADE

  6. PHP+javascript液晶时钟

    $size_small=5;//液晶宽度$size_big=25;//液晶长度$distance=10;//间距$color_back="#DDDDDD";$color_dark="#CCCCCC";$color_light="#000000";$number=0;?>";}}functionchange//处理数字显示{switch{case0:swapcolor;swapcolor;swapcolor;swapcolor;swapcolor;swapcolor;swapcolor;break;case

  7. 对javascript和select部件的结合运用

    php//对Javascript和select部件的结合运用//在写程序的过程,我想实现在select对象选中选项后,//不需要提交按钮,而直接触发动作,且在动作发生后//的页面中要保持所选择的选项。经过形容,终于通过//使用Javascript及select对象的onchange属性及//value值而实现了这种功能。>

  8. css中的px、em、rem、pt 特点和区别及换算详解

    这篇文章主要介绍了css中的px、em、rem、pt 之间的特点和区别及换算,各大小单位是否继承父元素大小及浏览器兼容与否等方面也做了详细解释,需要的朋友可以参考下

  9. PHP与javascript的两种交互方式

    在网页制作过程中怎样在不刷新页面的情况下使前台页面和后台CGI页面保持交互一直是个问题。这里介绍两个我在实践中使用的方法。action.php将信息放入cookie中,main.htm通过读取cookie来实现交互。index.htm---------------------------------------------------------------Test

  10. JSP由浅入深(8)—— JSP Tags

    JSP另外一个重要的语法是Tags(标记)。JSPtags可以有一个“starttag”、一个“tagbody”以及一个“endtag”。标志可以分成两种类型:一种是从外部标志库中转载的,另外一种是预先定义的标志。预先定义的标志是以jsp:字符开始的。其实它跟jsp:include是很相似的。再给出本节的练习吧,编写一个JSP,使之根据一个布尔型变量来对一个包含的文件。这里还是提示一下吧,要用到HTML和scriptlets的混合编程来处理JSP标志。

随机推荐

  1. 数组 – Perl中有什么神奇的数组?

    在Perldocumentationforreverse中,我发现:“请注意,将数组反转到自身(如@a=reverse@a)将尽可能保留不存在的元素;即对于非魔法数组或具有EXISTS和DELETE方法的绑定数组.什么属性区分神奇和非魔法阵列?解决方法一个神奇的阵列是一个执行它的操作不仅仅是改变内容.只有内置的魔术阵列是@ISA,而且这是非常不明显的.正如句子所暗示的,魔术阵列主要是一个绑定的阵列

  2. perl – 使用“isa”方法的最佳方式?

    什么是“最好的”使用方式“isa()”可靠?解决方法Scalar::Util实现明确更好.它避免了eval{}的开销,它总是导致设置一个附加变量.Scalar::Util实现更容易阅读.如果eval也失败了,我相信发生的是你在树之前向后走到eval之前的状态–这是如何实现复位状态.这带来了额外的故障开销.基准根本不是一个对象对象传递isa检查对象出现故障现象检查测试代码:我使用这是为i486-linux-gnu-thread-multi建立的perl,v5.10.1(*),以及Scalar::Util,1

  3. 在CORE :: GLOBAL中哪些Perl内置函数不能被覆盖?

    解决方法toke.c中任何值为负的值都可以被覆盖;所有其他人可能不会.你可以看源码here.例如,我们来看看第10,396行的waitpid:由于waitpid为负数,因此可能会被覆盖.grep怎么样?这是积极的,所以不能被覆盖.这意味着以下关键字不能被覆盖:chop,defined,delete,do,dump,each,else,elsif,eval,exists,for,foreach,format,glob,goto,grep,if,keys,last,local,m,map,my,next,no

  4. 如何在Perl中打印由换行符分隔的列表元素?

    什么是最简单的打印所有列表的元素以Perl中的换行符分隔的元素?解决方法在Perl5.10中:其他方式:或:或者怎么样?

  5. 使用Perl如何获取文件大小(以兆字节为单位)?

    我想以磁盘的形式获取磁盘上的文件大小.使用-s运算符给出了以字节为单位的大小,但是我将假设,然后将其除以魔术数字是一个坏主意:我应该使用只读变量来定义1024,还是有一种编程方式来获取一千字节的字节数?

  6. perl – 如何测试/分类CPAN模块的utf8正确性

    例如:File::Slurp,如果你将读取该文件您将根据命令行开关获得不同的结果,并且perl-CSDA将无法正常工作.伤心.(是的,我知道比Encode::decode(“utf8”,read_file($file,binmode=>’:raw’));将帮助,但是SAD.我的问题:>在这里任何首选方式,如何测试/分类什么CPAN模块是utf8安全/准备/正确?>这里是像Perl::Criticforutf8这样的东西–什么将检查模块源可能的utf8不正确?总结以上是DEVMAX为你收集整理的perl–如

  7. 如何删除Perl字符串中的空格?

    如果我声明一个值为’3’的变量$myString.是否有任何功能来删除返回值的空格.有点像SomeFun然后返回’3′.输出:你可以注意到’vid’=>‘0’,上面的代码从theanswer.我正在研究它.总结以上是DEVMAX为你收集整理的如何删除Perl字符串中的空格?如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

  8. 如何在mod_perl2下运行Devel :: Cover?

    Unfortunately,Devel::Coverdoesnotyetworkwiththreads.它也不适用于prefork.在startup.pl中使用,Devel::Cover问题perl5.8.9,Apache2.2.13.我的操作系统是FreeBSD,如果重要.同样的问题是reportedforwin32.更新:PerlTrace全部输出解决方法邪恶之源似乎是Apache::DBI.

  9. 如何使用Perl中的C类?

    我有一套用C写的课.从Perl脚本中调用它们的最佳方法是什么?

  10. perl – 在Emacs中以双模式更好的缩进

    我正在使用Emacs来修改Perl和Verilog交织的代码.我正在使用two-mode-mode在两者之间切换,这样可以预期.问题是perl代码与//一行一行地表示;如下图所示:而双模式则认识到它是Perl,它是逐行的,所以缩进等在线上无意义.我想做的是使Perl代码像往常一样格式化,但忽略//;字符.有什么想法吗?我刚刚开始偷看模式文件,它们是可以理解的复杂的,所以任何提示都不会感激!

返回
顶部