Vim’s command line mode is as arcane as the rest of the editor.
Today I learned how to use the global
command with normal
mode
Use case:
I had a file with a few lines that were separated with a symbol:
com.google.android.googlequicksearchbox | Search Widget
com.google.android.inputmethod.latin | Gboard
com.google.android.marvin.talkback | Talkback
com.google.android.music | Google Play Music
com.google.android.onetimeinitializer
com.google.android.printservice.recommendation | Mobile printing service
I wanted to deleted everything after the first “word”: the empty space, the |
and everything else.
There are several ways to achieve this. But one is using a global command:
:g/ |/norm nD
Explanation:
:g : Start a Global Command (:h :g for extra help on global commands)
/ | : Search for empty space and |
/norm nD : Execute nD in Normal Mode where
n - jumps to the match
D - delete to the end of the line
Now my file looks like this:
com.google.android.googlequicksearchbox
com.google.android.inputmethod.latin
com.google.android.marvin.talkback
com.google.android.music
com.google.android.onetimeinitializer
com.google.android.printservice.recommendation