In the vi editor, what does pressing the % key do during text navigation and code editing?
-
Ato move the cursor to a matching delimiter (parenthesis, bracket, or brace)
-
Bto move the cursor to the upper-left corner of the screen
-
Cto move the cursor backward to the beginning of a word
-
Dto move the cursor to the first column of the current line
-
ENone of the above
Answer
Correct Answer: to move the cursor to a matching delimiter (parenthesis, bracket, or brace)
Explanation
Introduction / Context:Efficient navigation in vi (and Vim) includes quickly jumping between paired delimiters. This is invaluable when editing source code that contains nested parentheses (), brackets [], and braces {}. The percent key provides a direct way to verify structural balance and traverse matching pairs.
Given Data / Assumptions:
- You are in Normal mode in vi/Vim.
- The cursor is on or near a delimiter character.
- Source text contains properly paired delimiters.
Concept / Approach:Pressing '%' moves the cursor to the matching partner of the delimiter under the cursor. This works for (), [], and {} and respects nesting. If the cursor is not on a delimiter, vi searches forward on the line for one before attempting a match. This simple motion helps you inspect block boundaries, function scopes, and array indices rapidly.
Step-by-Step Solution:
Place the cursor on a delimiter (for example, '(' or '{').Press % to jump to its match.Use % repeatedly to toggle between the opening and closing pair.Combine with operators (for example, d% to delete to the match) for structural edits.Verification / Alternative check:In a function with nested blocks, press % at different levels and confirm that vi selects the correct matching partner each time, reflecting proper nesting logic.
Why Other Options Are Wrong:
- Upper-left corner or first column: use 'H' or '0' respectively, not '%'.
- Backward to start of word: use 'b' (or 'B' for WORDs).
- None of the above: Incorrect because '%' matches delimiters.
Common Pitfalls:Pressing % when the cursor is not on a delimiter (it may not jump as expected) or relying on % when delimiters are unbalanced, which can confuse navigation.
Final Answer:to move the cursor to a matching delimiter (parenthesis, bracket, or brace)