Clipboard
Copy Config
"+yCopy to System Clipboard
Yanks selected text into the Linux/X11 system clipboard (pasteable into Chrome, Slack, VSCode).
Use
"+p to paste from system clipboard
Clipboard
Copy Config
"*y / "*pPrimary Selection (Mouse Middle-Click)
Interacts with Linux primary selection buffer. Paste anywhere with mouse wheel click.
Add
set clipboard=unnamedplus for seamless 'y'
Column Mode
Copy
Ctrl + v
Visual Block Mode
Enter column selection mode. Use
j / k to stretch vertically across ports or declarations.Select multiple lines in a single column
Column Mode
Copy
Ctrl+v → I → text → Esc
Multi-Line Vertical Insert
Inserts text across all selected lines simultaneously (e.g. prefixing
wire [31:0] or // ).Hit Esc: text replicates across all rows
Column Mode
Copy
Ctrl+v → $ → A → text → Esc
Multi-Line Append to Ends
Appends text to the ragged ends of all selected lines (e.g. adding commas or semicolons).
Great for Verilog port list trailing commas
Column Mode
Copy
Ctrl+v → r + char
Replace Entire Column
Replaces every character in the visual block with a single target character (e.g.
r0 or r_).Replaces column of numbers with 0
Text Objects
Copy
ci" / ca"Change Inside / Around Quotes
Deletes contents inside double quotes and enters insert mode instantly.
ca" removes the quotes too."data_path" → ""
Text Objects
Copy
ci( or cibChange Inside Parentheses
Deletes everything inside
( ... ) and puts cursor into insert mode without touching the braces.Also works with
ci[ and ci{
Text Objects
Copy
ciw / diwChange / Delete Inner Word
Edits or deletes the full word under the cursor regardless of where the cursor sits inside it.
No need to move to the beginning of word
Search & Replace
Copy
* and #
Instant Word Search
Press
* to jump to the next occurrence of the word under cursor, or # for previous.Press
n to go next, N for previous
Search & Replace
Copy
:%s/old/new/gcGlobal Interactive Replace
Replaces all occurrences of pattern throughout the file, prompting for confirmation (y/n/a/q).
Omit
c to replace all without asking
Search & Replace
Copy
:nohClear Search Highlighting
Clears yellow/colored search highlights until the next search. Often mapped to
<leader>h.:nohlsearch
Splits & Tabs
Copy
:vsp [file] / :spVertical & Horizontal Splits
Splits the window vertically (side-by-side) or horizontally (stacked). Ideal for RTL vs Testbench review.
:vsplit testbench.sv
Splits & Tabs
Copy
Ctrl+w + h/j/k/l
Navigate Split Windows
Switch focus between active window splits using standard directional navigation keys.
Ctrl+w = equalizes split sizes
Splits & Tabs
Copy
gt / gTCycle Next / Previous Tab
Switch between tabs effortlessly. Open new tabs with
:tabnew [filename] or :tabe.3gt jumps directly to tab 3
Macros
Copy
qa ... qRecord Macro to Register 'a'
Press
qa to start recording keystrokes. Perform edits, then hit q to end recording.Records all actions into register 'a'
Macros
Copy
@a / @@ / 50@aReplay Macro
Replays the macro once with
@a, repeats last macro with @@, or batch executes 50 times.Transforms 50 lines automatically
Repeat
Copy
. (Dot Command)
Repeat Last Change
The most powerful single key in Vim: repeats whatever text edit or deletion you just performed.
Pair with
* and ciw for rapid refactoringInteractive ~/.vimrc & ~/.gvimrc Generator
Select your preferred settings below to generate a clean, modern, and production-ready configuration tailored for Linux gVim and EDA terminal environments.
~/.vimrc config preview
💡 Visual Block Column Editing Walkthrough
Need to prefix 25 lines with wire [31:0] or comment out a block with // ?
STEP 1
Enter Block Mode
Position cursor at the first character of row 1 and press Ctrl + v.
STEP 2
Select Vertical Span
Press j repeatedly (or type 24j) to highlight the column down 25 rows.
STEP 3
Trigger Insert Mode
Press capital I (Shift + i). Notice cursor jumps to top row.
STEP 4
Type & Commit
Type your text (e.g.
// ), then hit Esc. All 25 rows update instantly!Frequently Asked Questions
How do I make gVim always share clipboard with Linux desktop applications?
Add
set clipboard=unnamedplus to your ~/.vimrc. This tells Vim to use the X11 clipboard selection by default, so any text you copy with y or delete with d is immediately available to paste into your browser, IDE, or terminal with Ctrl+V.
Why does gVim look outdated with grey toolbars on Linux, and how do I fix it?
Default Linux gVim enables legacy GTK/Motif GUI elements. You can disable them by adding
set guioptions-=T (hides toolbar), set guioptions-=m (hides menu bar), and set guioptions-=r (hides right scrollbar) to your ~/.gvimrc.
What is the difference between unnamed, unnamedplus, and mouse selection in Linux?
In Linux X11, there are two primary clipboards: PRIMARY (active text selection pasted with middle mouse click) accessed via register
*, and CLIPBOARD (standard copy/paste buffer triggered by Ctrl+C/Ctrl+V) accessed via register +. Using unnamedplus maps Vim's default yank register directly to the X11 CLIPBOARD buffer.