Re: Vim 8 enhancements
--- Martin Stubenschrott [EMAIL PROTECTED] escreveu: Now that there are many new - good, or not - ideas coming up. I think it would be a great idea, if the voting page on: http://www.vim.org/sponsor/vote_results.php becomes updated with new ideas, and old ones get deleted/changed. Agreed. I was updating my votes to remove features that have been implemented, and i really wished i had a few new features to vote for. Due to the growing lack of options, i voted several times for the same features :-D __ Fale com seus amigos de graça com o novo Yahoo! Messenger http://br.messenger.yahoo.com/
Vim 7 performance notes
Hi Bram et al., I'm doing some performance investigations of Vim code trying to understand whether there are any possibilities to improve it. Currently I've made the following observations (all investigations are done on Windows): Redundant work is done during regexp operations in syntax highlighting. On some files it is very noticable. The stack of the hotspot is ... syn_current_attr syn_regexec vim_regexec_multi vim_regexec_both regtry regmatch ga_grow alloc_clear memset. So alloc_clear spends quite a few clockticks in lalloc() and memset(). The reason for this is pessimistically big grow size for regset growing array: ga_init2(regstack, 1, 1); This is not very good: many regexp operations don't go deep - non-match is detected very quickly. But even one element on the stack will lead to allocating at least 1 bytes (which should be fast with good CRT memory allocator) and (worse) initializing these 1 bytes with zeros (won't be that fast). One possible solution would be to keep regstack alive across calls to vim_regexec_both, but I'm not sure if it's can be done safely. What I did was replacing the grow size with smaller number and making the grow size for growing arrays dynamic with increase of 25%: --- regexp.c (revision 136) +++ regexp.c (working copy) @@ -3350,7 +3350,7 @@ /* Init the regstack empty. Use an item size of 1 byte, since we push * different things onto it. Use a large grow size to avoid reallocating * it too often. */ -ga_init2(regstack, 1, 1); +ga_init2(regstack, 1, 64); /* Init the backpos table empty. */ ga_init2(backpos, sizeof(backpos_T), 10); --- misc2.c (revision 136) +++ misc2.c (working copy) @@ -1905,6 +1905,7 @@ { if (n gap-ga_growsize) n = gap-ga_growsize; +gap-ga_growsize += (gap-ga_growsize 2); len = gap-ga_itemsize * (gap-ga_len + n); pp = alloc_clear((unsigned)len); if (pp == NULL) With this change I can see serious performance improvements, but I'm not sure if they are safe. Bram, does it look making any sense? -- Alexei Alexandrov
Re: Vim 7 performance notes
On Thu, Feb 01, 2007 at 11:20:16PM +0300, Alexei Alexandrov wrote: Hi Bram et al., I'm doing some performance investigations of Vim code trying to understand whether there are any possibilities to improve it. Currently I've made the following observations (all investigations are done on Windows): Redundant work is done during regexp operations in syntax highlighting. On some files it is very noticable. The stack of the hotspot is ... syn_current_attr syn_regexec vim_regexec_multi vim_regexec_both regtry regmatch ga_grow alloc_clear memset. So alloc_clear spends quite a few clockticks in lalloc() and memset(). The reason for this is pessimistically big grow size for regset growing array: ga_init2(regstack, 1, 1); This is not very good: many regexp operations don't go deep - non-match is detected very quickly. But even one element on the stack will lead to allocating at least 1 bytes (which should be fast with good CRT memory allocator) and (worse) initializing these 1 bytes with zeros (won't be that fast). I am not sure if this is really relevant to vim, because I don't have a clue which regexp matching algorithm it is using, but you might want to look into this article, when it comes to regexp speed: http://swtch.com/~rsc/regexp/regexp1.html regards, Martin
vim/cscope interface bug
Folks, Vim 6.4/7.0 can't show result of cscope find f name correctly. E.g. 1 1 Makefile unknown 2 1 arch/Makefile unknown h 3 1 arch/README unknown 4 1 arch/evbsh5/Makefile unknown Ã~mts5 5 1 arch/evbsh5/compile/Makefile unknown ° 6 1 arch/evbsh5/conf/CAYMAN unknown 7 1 arch/evbsh5/conf/CAYMAN64 unknown 8 1 arch/evbsh5/conf/SIMULATOR unknown ^]Ãh 9 1 arch/evbsh5/conf/files.evbsh5 unknown 10 1 arch/evbsh5/conf/majors.evbsh5 unknown ^]ÃÃ~ 11 1 arch/evbsh5/conf/std.evbsh5.eb unknown Fix: --- vim70-old/src/if_cscope.c 2006-11-09 15:17:47.0 -0600 +++ vim70/src/if_cscope.c 2006-11-09 15:21:16.0 -0600 @@ -1923,14 +1923,8 @@ if ((fname = strtok(NULL, (const char *)\t)) == NULL) continue; if ((lno = strtok(NULL, (const char *)\t)) == NULL) - { - /* if NULL, then no extra, although in cscope's case, there -* should always be extra. -*/ - extra = NULL; - } - - extra = lno + strlen(lno) + 1; + continue; + extra = strtok(NULL, (const char *)); lno[strlen(lno)-2] = '\0'; /* ignore ; at the end */
Re: replace with a number sequence
On Wed, 31 Jan 2007 15:23:36 +, Tom Whittock [EMAIL PROTECTED] wrote: the ex (colon) commands are one of the major parts of vim - I would highly recommend learning them a bit more, if you want to get the most out of the program. For me, without ex there would be very little point in using vim at all - I couldn't even write to a file ;) Unless you use ZZ. -- Matthew Winn
Re: Weird problem with helpgrep
Hi François :) * François Pinard [EMAIL PROTECTED] dixit: [DervishD] [Bram Moolenaar] Only a few things might need to be spread to other directories, using symlinks when possible (binary in /usr/local/bin, libs in /usr/local/lib, header files in /usr/local/include). Well, I know about a packaging system that does exactly that (I don't remember its name). [...] I used two installation systems which were extremely fond on symbolic links: LUDE (from Université de Montréal) and Stow (from GNU). Both have been used in various places. Stow!, that's the name I didn't remember :) Thanks for pointing! Raúl Núñez de Arenas Coronado -- Linux Registered User 88736 | http://www.dervishd.net It's my PC and I'll cry if I want to... RAmen!
Re: VIM autondent on C++ source-code
On Thursday 01 February 2007, you wrote: The desired result is, string GetHelloWorld() { return string(Hello, world!); } What configuration change can fix this? :set cino+=t0 :help 'cino' :help cinoptions-values -- Erlend Hamberg [EMAIL PROTECTED]
Re: Breaking long lines
Theerasak Photha [EMAIL PROTECTED] replied: I used to read through the :help as a kind of technological catechism. I've forgotten most of it, but gq, , and Ctrl-N are some the handiest things I've learned. Mind is rutted on a lot of long ago memorized stuff; :+/-n gets me Ctrl-N.S c.f. also the tags features. Oh yes, used it foe many years. Thanks again for the help. Jack Tucker [EMAIL PROTECTED]
Re: replace with a number sequence
Hi, I liked the following replacement command, and I found it very usefull: :let n=0|g//s//\=n/|let n+=1 But, could anyone please explain the way it works?! I used the help := to try and understand it, but the vim help says the := command displays the line number, which cannot explain the way the command above works Thanx in advance... jose isaias cabrera wrote: Mark Woodward wrote, On Mon, 2007-01-29 at 21:57 +1300, John Little wrote: Hi IMHO simpler and more flexible (works if there are lines not matching the pattern) is: :let n=0 | g/opIndex(\zs\d\+/s//\=n/|let n+=1 A useful idiom I learned here. Usually I muck around with ordinary searches until the search highlighting shows I've got it right, then :let n=0|g//s//\=n/|let n+=1 is what I have to remember, and it's obvious what the start and increment are. John Just as additional info this method also lets you perform this sort of incremental substitution on letters. UniqueID2 = lview.focusedItem.subItems.opIndex(0).text; Parent = lview.focusedItem.subItems.opIndex(0).text; Children= lview.focusedItem.subItems.opIndex(0).text; login = lview.focusedItem.subItems.opIndex(1).text; let i=97|g/opIndex(\zs\d\+/s//\=nr2char(i)/|let i=i+1 UniqueID2 = lview.focusedItem.subItems.opIndex(a).text; Parent = lview.focusedItem.subItems.opIndex(b).text; Children= lview.focusedItem.subItems.opIndex(c).text; login = lview.focusedItem.subItems.opIndex(d).text; let i=65|g/opIndex(\zs\d\+/s//\=nr2char(i)/|let i=i+1 UniqueID2 = lview.focusedItem.subItems.opIndex(A).text; Parent = lview.focusedItem.subItems.opIndex(B).text; Children= lview.focusedItem.subItems.opIndex(C).text; login = lview.focusedItem.subItems.opIndex(D).text; :h nr2char Since you brought it up, I also have this other situation, bla.blah.blahh[0].text; bla.blah.blahh[0].text; bla.blah.blahh[0].text; bla.blah.blahh[0].text; bla.blah.blahh[0].text; bla.blah.blahh[0].text; I tried using the original solution you gave me, :let n=0 | g/opIndex(\zs\d\+/s//\=n/|let n+=1 but it kept going to the same spot as before. I will not change the [#]. Where is the match for (? I can't figure it out. The next version of vim should have an easier way of doing this. I constantly have to copy from vim and paste to TextPad and doing it there and then copy from TextPad back to vim. Yes, I know I could make a function and assign a key to it, but these kind of things should be just built in. I know, I am a picky guy, aren't I? :-) thanks.
Hi, Can I register for the right to post in the mail-list?
I am a plain vim user, mostly working on latex, C++ and fortran programming. I began to use vim for 4 months and there are always some technical problems around. The suggestions from the mail group may be very helpful for me. Thanks a lot. ^_^ Ting
Re: Mac Questions
On Tue, Jan 09, 2007 at 10:23:25AM +0100, Bram Moolenaar wrote: Dave Land wrote: On Jan 8, 2007, at 3:03 PM, Dave Land wrote: Happily, Apple provided a utility that handles it for you: defaults read ${HOME}/.MacOSX/environment Actually, making this work in bash (or other shell) requires a little more than just reading the file... Here's the relevant chunk from my .bashrc: # Get environment variables from ~/.MacOSX/environment.plist # (This avoids the sin of duplicating data here and in that file) if [[ `uname` == 'Darwin' ]] ; then defaults read ~/.MacOSX/environment | grep -v '[{}]' | tr '' ' | awk '{ print declare -x,$1=$3 }' | while read -r OneLine; do eval $OneLine; done; fi To give credit where it's due, this came from a comment on macosxhints.com. The conditional (if [[ `uname` == Darwin' ]]) is because I use this same .bashrc across several hosts, including Solaris, Linux, and Mac OS X. This issue comes up often enough that it deserves a section in the help. Could you perhaps write some text? If you can send me a patch that would be great. The docs already explain one way to set $PATH. :help mac-faq As it says there, the system vimrc files in the versions distributed at macvim.org/OSX already use this method. The same method should work for other environment variables ... but AFAIK the only one that matters is $PATH. HTH --Benji Fisher
Re: Hi, Can I register for the right to post in the mail-list?
I am a plain vim user, mostly working on latex, C++ and fortran programming. I began to use vim for 4 months and there are always some technical problems around. The suggestions from the mail group may be very helpful for me. You seem to already be subscribed to the mailing list, evidenced by the fact that you posted to it successfully. If you're not receiving emails, perhaps something on your end is rejecting emails from mailing lists? Or perhaps you've subscribed in digest-mode and get collections of messages rather than individual messages? But yes, the mailing list is a font of help in addition to being a good place to get questions answered when you hit a wall. Welcome! -tim
Re: Hi, Can I register for the right to post in the mail-list?
Hi Jiang :) * Jiang Ting [EMAIL PROTECTED] dixit: I am a plain vim user, mostly working on latex, C++ and fortran programming. I began to use vim for 4 months and there are always some technical problems around. The suggestions from the mail group may be very helpful for me. Given that you've already post to the list, then you're subscribed ;) so you can post here freely. You're going to find very nice, kind and helpful people here, this list is really great. For my own part, I'll try to help you as much as I can, although I'm a newbie in Vim (I've been only using it for a month). Welcome to the Vim list :)) Raúl Núñez de Arenas Coronado -- Linux Registered User 88736 | http://www.dervishd.net It's my PC and I'll cry if I want to... RAmen!
Go to start of visual selection
How can I move the cursor the start of the visual selection? With the o command, yes. But how can I make sure the cursor is at the start while visual mode is on? The ` motion followed by gv sets the cursor back to the end if it was there. Thx, Andy -- EOF ___ Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: http://mail.yahoo.de
modeline error
I'm trying to source a syntax script using modeline // vim:so $HOME/.vim/syntax/vera.vim I'm getting the following error: Error detected while processing modelines: line 46: E518: Unknown option: $HOME/.vim/syntax/vera.vim What is wrong ? Thanks in advance.. Expecting? Get great news right away with email Auto-Check. Try the Yahoo! Mail Beta. http://advision.webevents.yahoo.com/mailbeta/newmail_tools.html
Re: modeline error
I'm trying to source a syntax script using modeline // vim:so $HOME/.vim/syntax/vera.vim I'm getting the following error: Error detected while processing modelines: line 46: E518: Unknown option: $HOME/.vim/syntax/vera.vim What is wrong ? A couple things: 1) the modeline can only be used to set options, not to perform arbitrary Ex commands. :help modeline ... {options} a list of option settings, separated with white space or ':', where each part between ':' is the argument for a :set command ... 2) even if it were to allow arbitrary Ex commands, they are executed within the sandbox which prohibits access to other files: :help sandbox These items are not allowed in the sandbox ... -reading or writing a file ... It looks like what you want is a custom filetype for your particular vera filetype. You can learn more about creating your own custom file types than any sane person should want to know by reading :help new-filetype Hope this gives you some direction, -tim
Re: replace with a number sequence
On Thu 1-Feb-07 8:23am -0600, Naim Far wrote: I liked the following replacement command, and I found it very usefull: :let n=0|g//s//\=n/|let n+=1 But, could anyone please explain the way it works?! I used the help := to try and understand it, but the vim help says the := command displays the line number, which cannot explain the way the command above works -- Best regards, Bill
Re: replace with a number sequence
On Thu 1-Feb-07 8:23am -0600, Naim Far wrote: I liked the following replacement command, and I found it very usefull: :let n=0|g//s//\=n/|let n+=1 But, could anyone please explain the way it works?! I used the help := to try and understand it, but the vim help says the := command displays the line number, which cannot explain the way the command above works When pattern is missing in :g or s:, it uses the last pattern of global, substitute or search - in the OPs example, it was being used after a search. For \= see :h sub-replace-\= In the example, it is evaluating the variable - so its value is substituted. -- Best regards, Bill
Question on highlighting
Hello, I would like to be able to shade (use the same background color, but make it lighter) the text between two braces (spanning multiple lines and possibly nested). What is the best way to accomplish this? Thanks in advance, Sean
Re: Go to start of visual selection
How can I move the cursor the start of the visual selection? With the o command, yes. But how can I make sure the cursor is at the start while visual mode is on? The ` motion followed by gv sets the cursor back to the end if it was there. I think it sounds like you want something like the following: vnoremap gt esc`:exec 'norm '.visualmode().'`lt'cr vnoremap gb esc`lt:exec 'norm '.visualmode().'`'cr which gives you a Go to the Top and Go to the Bottom mapping within visual mode. It can be a little funky in blockwise visual-mode, if your ' and ' points are top-right and bottom-left (rather than top-left and bottom-right), as the top will go to the top-right, not the top-left. I haven't figured out a good way to do this without considerably more code in the mapping (save the column of ' and then gvO to go back to visual-mode but in the other corner and then compare the columns to see which you want, perhaps needing to switch back...it's ugly). However, it should work fine in character-wise and line-wise visual modes. HTH, -tim
Re: modeline error
On 2/1/07, Tim Chase [EMAIL PROTECTED] wrote: It looks like what you want is a custom filetype for your particular vera filetype. You can learn more about creating your own custom file types than any sane person should want to know by reading :help new-filetype I can testify that while new custom filetype entries are a little daunting (and even tedious, if you are not modifying or appending to existing settings) the first time, once you have your files in place, they become much easier to do for additional entries.
Re: Go to start of visual selection
Tim Chase wrote: How can I move the cursor the start of the visual selection? With the o command, yes. But how can I make sure the cursor is at the start while visual mode is on? The ` motion followed by gv sets the cursor back to the end if it was there. I think it sounds like you want something like the following: vnoremap gt esc`:exec 'norm '.visualmode().'`lt'cr vnoremap gb esc`lt:exec 'norm '.visualmode().'`'cr which gives you a Go to the Top and Go to the Bottom mapping within visual mode. Won't they move the boundary of the visual area together with the cursor? It can be a little funky in blockwise visual-mode, if your ' and ' points are top-right and bottom-left (rather than top-left and bottom-right), as the top will go to the top-right, not the top-left. I haven't figured out a good way to do this without considerably more code in the mapping (save the column of ' and then gvO to go back to visual-mode but in the other corner and then compare the columns to see which you want, perhaps needing to switch back...it's ugly). However, it should work fine in character-wise and line-wise visual modes. HTH, -tim Best regards, Tony.
comment formatting
Hi, Id like to format comments in this way, and I can't get it. /** tabcomment text tabBlah */ Thanks for the help.
Re: Go to start of visual selection
vnoremap gt esc`:exec 'norm '.visualmode().'`lt'cr vnoremap gb esc`lt:exec 'norm '.visualmode().'`'cr which gives you a Go to the Top and Go to the Bottom mapping within visual mode. Won't they move the boundary of the visual area together with the cursor? Not from my testing... [ed: a hush falls over the mailing-list...Tim actually tested this response?! :) ] Perhaps a diff. setting between our setups if you're experiencing drifting? Other than the peculiar caveat regarding blockwise visual mode, it worked for me. Even in blockwise mode, it successfully went to the top, but wasn't always the top-*left* anchor. Note that the and marks are jumped-to with the back-tick (rather than a regular apostrophe) which remembers column information as well, so when gt is run/expanded/executed, it 1) leaves visual mode 2) jumps to the exact anchor position of the bottom/top mark 3) enters the previous visual-mode as returned by the visualmode() function 4) and then jumps to the previous exact anchor position of the top/bottom mark -tim
Re: comment formatting
Andrea Ratto wrote: Hi, Id like to format comments in this way, and I can't get it. /** tabcomment text tabBlah */ Thanks for the help. Disclaimer: the following are not tested What about (Trial 1) :set comments=s:/**,m:\t,ex:*/ (Trial 2) :exe 'set comments=s:/**,m:\' . \t . ',ex:*/' (Trial 3) :let comments=s:**,m:\t,ex:*/ (Trial 4) :set noet ts=8 comments=s8:/**,ex:*/ (Try more variations if none of the above work OK)? In all cases, close the comment by typing only a slash after the tab has been autoinserted: this ought to delete the tab and insert */ in its stead. Note: since whitespace characters are used as separators between options in a :set command, they must be backslash-escaped when they are part of the value (similarly bar, double-quote and backslash). Best regards, Tony.
CTRL-S functionality to a letter combo like i.e. cs
Hi, I'm using gvim on windows, which is behaving like windows shortcuts: For example: CTRL-S for save CTRL-X for cut, ect. When using vim on Linux these don't work anymore because of linux windows managers. Is it possible to put the same functionality of the CTRL-key (and/or ALT) to a key which is not linux windows manager sensitive? In other words: Is it possible to remap the ctrl key to for example the letter c? So that when you are in insert-mode you can press cs as a replacement for CTRL-S? ( Is this possible without using the Function Keys F1 till F12? Rgds, Eric _ Get live scores and news about your team: Add the Live.com Football Page http://www.live.com/?addtemplate=football
Re: CTRL-S functionality to a letter combo like i.e. cs
On Thu, 01 Feb 2007 20:48:52 + Eric Leenman [EMAIL PROTECTED] wrote: Hi, I'm using gvim on windows, which is behaving like windows shortcuts: For example: CTRL-S for save CTRL-X for cut, ect. When using vim on Linux these don't work anymore because of linux windows managers. Is it possible to put the same functionality of the CTRL-key (and/or ALT) to a key which is not linux windows manager sensitive? In other words: Is it possible to remap the ctrl key to for example the letter c? So that when you are in insert-mode you can press cs as a replacement for CTRL-S? ( Is this possible without using the Function Keys F1 till F12? get the vim setup called cream. http://cream.sf.net -- Kim Schulz| Private : http://www.schulz.dk [EMAIL PROTECTED] | Business: http://www.devteam.dk +45 5190 4262 | Sparetime: http://www.fundanemt.com
Re: CTRL-S functionality to a letter combo like i.e. cs
Eric Leenman wrote: Hi, I'm using gvim on windows, which is behaving like windows shortcuts: For example: CTRL-S for save CTRL-X for cut, ect. When using vim on Linux these don't work anymore because of linux windows managers. AFAIK they do work but they aren't mapped because they aren't standard on Linux. Is it possible to put the same functionality of the CTRL-key (and/or ALT) to a key which is not linux windows manager sensitive? In other words: Is it possible to remap the ctrl key to for example the letter c? So that when you are in insert-mode you can press cs as a replacement for CTRL-S? ( Is this possible without using the Function Keys F1 till F12? Rgds, Eric Since you're apparently not going to use the same keys as on Windows, why not use real Vim keys? Save :w Save As :saveas filename.txt Delete (cut) to default register d Delete (cut) to clipboard +d Delete lines 22 to 33 :22,33d ...to clipboard :22,33d + Yank (copy) to default register y Yank (copy) to clipboard +y Yank from current line to end of file :.,$y ... to clipboard :.,$y + Put (paste) before cursor P Put (paste) after cursor p Put from clipboard +p +P Put linewise after current line :put ... from clipboard :put + Put at end of file :$put :$put + Undo u Redo Ctrl-R etc. etc. etc. Best regards, Tony.
Re: Go to start of visual selection
On Thu 1-Feb-07 11:51am -0600, Tim Chase wrote: vnoremap gt esc`:exec 'norm '.visualmode().'`lt'cr vnoremap gb esc`lt:exec 'norm '.visualmode().'`'cr Why do you use `lt instead of just ` ? Just a matter of preference? -- Best regards, Bill
Re: Go to start of visual selection
vnoremap gt esc`:exec 'norm '.visualmode().'`lt'cr vnoremap gb esc`lt:exec 'norm '.visualmode().'`'cr Why do you use `lt instead of just ` ? Just a matter of preference? Depending on what follows the ` vim may try to interpret it as a character-notation. I prefer not to have to think about it, so just like with HTML entities when I write HTML, it's now hard-wired that, when writing mappings, I use lt (and I get stung enough with | vs. bar that I tend to err on the side of using the notation when I don't have to, just so I don't have to burn brain-cells thinking about it case-by-case. -tim
Re: Go to start of visual selection
Hi Bill, On 2/1/07, Bill McCarthy [EMAIL PROTECTED] wrote: On Thu 1-Feb-07 11:51am -0600, Tim Chase wrote: vnoremap gt esc`:exec 'norm '.visualmode().'`lt'cr vnoremap gb esc`lt:exec 'norm '.visualmode().'`'cr Why do you use `lt instead of just ` ? Just a matter of preference? The following text describing when to use lt in a map is taken from the Vim keymap tutorial which is available at: http://www.geocities.com/yegappan/vim_keymap.html When Vim parses a string in a map command, the \... sequence of characters is replaced by the corresponding control character. For example, let us say in insert mode you want the down arrow key to execute C-N when the insert complete popup menu is displayed. Otherwise, you want the down arrow key to move the cursor one line down. You can try the following command (which doesn't work): :inoremap Down C-R=pumvisible() ? \C-N : \DownCR When parsing the above command, Vim replaces C-N and Down with the corresponding control characters. When you press the down arrow in insert mode, as there are control characters in the expression now, the command will fail. To fix this, you should escape the character, so that Vim will not replace \C-N with the control character when parsing the command. The following command works: :inoremap Down C-R=pumvisible() ? \ltC-N : \ltDownCR With the above command, Vim will use the control character only when the map is invoked and not when the above command is parsed. If the flag 'B' is present in 'cpoptions', then the backslash character is not treated as a special character in map commands. For example, let us say you want to create an insert-mode map for the F6 key to insert the text Press Home to go to first character. For this, you can try using the following command: imap F6 Press Home to go to first character When you press F6 in the insert mode, the Home in the above map will cause Vim to move the cursor to the first character in the line and insert the reminder of the text there. To literally enter the text Home, you need to escape it: imap F6 Press \Home to go to first character If the flag 'B' is not present in 'cpoptions', then the above map command will insert the correct text. If the flag 'B' is present, then the backslash character is not treated as a special character and the above map will not insert the correct text. To treat Home literally independent of the 'cpoptions' setting, you can use the following command: imap F6 Press ltHome to go to first character In the above command, the notation lt is used for in Home. - Yegappan
How to use Ctags.exe for extern C {} ?
Hi everybody : I use the ctags to get some tags form the MinGW include file . But I run ctags -R MinGW I find the tags file is not contain the function in the extern C { _CRTIMP FILE* __cdecl fopen (const char*, const char*); } such as fopen . How can I do ? Thanks for the help.