Fandom

Vim Tips Wiki

Jumping to the start and end of a code block

1,624pages on
this wiki
Add New Page
Talk0 Share

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Tip 7 Printable Monobook Previous Next

created February 24, 2001 · complexity basic · author Yegappan · version 5.7


To jump to the beginning of a C code block (while, switch, if etc), use the [{ command.

To jump to the end of a C code block (while, switch, if etc), use the ]} command.

The above two commands will work from anywhere inside the code block.

To jump to the beginning of a parenthesis use the [( command.

To jump to the end of a parenthesis use the ]) command.

ReferencesEdit

CommentsEdit

Related to these motion commands are [[ and ]]

  • [[ : sections backward or to the previous '{' in the first column.
  • ]] : sections forward or to the next '{' in the first column.
  • [] : sections backward or to the previous '}' in the first column.

This has specially help me in jumping to the top of the functions and jumping from one function to the next function. For instance, the first command takes you to the beginning of the current function. The second command takes you to the beginning of the next function. The third takes you to the end of the previous function.

May be our coding convention played a part in this


To jump to the beginning/end of a function that does not have a "{" in the first column, there is a work around in the Vim documentation. Try ":help [[" and search for "map" in that text.


What's the different between this and just searching "/ or ?" for the braces?

I thought this might be a smarter search, but "[{" will still match in open curlies inside a comment.

 /} will not work for nested {}.

The advantage is the following. Say you want to go to the beginning of the block that the cursor is in. between the cursor position and the beginning of the block, there may be several blocks at the same level as the cursor, so [{ will skip them, but ?{ won't. This is even more useful if you want to go to the beginning of a block multiple levels above the cursor position, because there could be a lot more blocks that you want to skip.

Also on Fandom

Random Wiki