-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 07/17/2010 09:20 PM, Tony Mechelynck wrote: > On 17/07/10 14:15, Aaron Lewis wrote: >> -----BEGIN PGP SIGNED MESSAGE----- >> Hash: SHA1 >> >> On 07/17/2010 07:51 PM, Frank Blendinger wrote: >>> Hi. >>> >>> Aaron Lewis<[email protected]> (2010-07-17 19:24 +0800): >>>> I'm trying to implement a custom script used for commenting and >>>> uncommenting , we have two types , like c-style `//' and shell-style >>>> `#' >>>> , how can i detect the first characters ? >>> >>> Not really answering your question, but if you aren't writing the script >>> just for fun or education I would recommend the existing NERD commenter >>> plugin, which does its job pretty well for all kinds of comments: >> >> OK , i've just got some ideas from that plugin , as i'm doing a custom >> plugin , what's wrong with this func , anybody give a try ? >> >> func! CommentingOut() >> if filetype == "" >> s/^/#/<CR> >> else >> s/^/\/\//<CR> >> endif >> endfunc >> >> Thanks > > Hm, the logic looks a little too simple. There are a lot of filetypes,
Doesn't matter for me right now ;-) You've got it , should be regex here. > detected by Vim, for which C++-like comments won't be acceptable. In > addition, since script lines are ex-commands, you don't need additional > <CR> characters at the end. And finally, you may want to separate your > comment leader from the text by a space. Right Ah, and, "filetype" without the > quotes is a user-defined variable name. To get the option you need a & > prefix, see ":help expr-option". > Yep. > I haven't tried the following (based on the above function), but what do > you think of it? > > function CommentOut() range > if &filetype =~? '^c$\|^cpp$\|^css$\|^javascript$' > exe a:firstline . ',' . a:lastline . 's/^/\/\/ /' > else > exe a:firstline . ',' . a:lastline . 's/^/# /' > endif > endfunc > Great , works fine. At first glance , i'm just trying to remove comments by determining the first character , maybe by file type is more reliable. I'm just thinking about macros in c language. - -- Best Regards, Aaron Lewis - PGP: 0x4A6D32A0 FingerPrint EA63 26B2 6C52 72EA A4A5 EB6B BDFE 35B0 4A6D 32A0 irc: A4r0n on freenode -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.14 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkxBts8ACgkQvf41sEptMqDpLgCgw9GwImV5yC03I1vgBY5U80Cr 0RQAnjw7JMT4sDQkPHUj8kDx0Eruc8ev =4hYk -----END PGP SIGNATURE----- -- You received this message from the "vim_use" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php
