A note on recordings (or macros): if you save the macro in the a register, and after using it you realized that you need to correct (or add) one aspect of the commands that you recorded, you can print the a reg in the current file typing "app then you make the changes and to replace the new version of the macro, you can type "ayy. Amazing stuff.
You don't need to use echo to do maths operations in Vim. In insert mode if you type = 1+200/4 you will get the same answer 51 appear in your doc. For the other example you can store 1 + 2 +...+13 in a register in normal mode: "lyy (this stores the line in a register called l, l can be any letter) then in insert mode: = l Basically = in insert mode is how to do maths in vim To quickly write a list of numbers on separate lines you can (in normal mode) :put(range(1,10))
These commands work when you're in insert mode: Type Ctrl-r, then press the = key. Then type in a formula, like 3*3 and hit return. It will insert 9. Type the beginning of a line that is the same as some other line, for example, if you type "import", then type Ctrl-x Ctrl-l and it will present a pop-up menu with lines already in the file that begin with the same characters as what you've typed. Use Ctrl-p and Ctrl-n to navigate up and down that list, and hit return to insert the desired line. Ctrl-x Ctrl-f and it will display all the filenames in the current directory. Use Ctrl-p and Ctrl-n to navigate up and down that list, and hit return to insert the desired filename. If you select a path, you can type Ctrl-x Ctrl-f again to navigate one level down in that path. Ctrl-r % inserts the current filename. When not in insert mode: Ctrl-w f will open the file whose filename is under the cursor. : Ctrl-f will allow you to open and edit the command history, and re-execute a command (or a modified command if you modify it) by pressing return on it. :r !, and it will insert the results of that command. For example, :r !date will insert the current date, assuming you have the Unix date command in your path.
It's refreshing to watch someone achieve so much with vanilla vim. It seems to me that today a lot of vim users including me look for plugins to do things instead of combing built in features. The Unix way is infinitely more powerful and adaptable. I learned a few new tricks today, Danke dir!
But the unix way is not including everything in one program. That means a small core app + plugins would be more unix like. But I get your point. I am wondering about all the filetree plugins when this functionality is builtin for ages.
As a long time Emacser but a noob Vimmer, I have to say I appreciate this very much as well. It's important to get used to the vernacular before relying on the crutch of packages... and those kinds of videos are very thin on the ground.
I'd like to recommend the vim-speeddating plugin. It extends the and keys to operate on dates, ordinal numbers, and other similar patterns (customizable), and to operate on multiple visually-selected lines at once (creating incrementing lists).
As a daily driver of vanilla vim for years (relatively recent neovim convert), i as not aware that during selection you could run commands (IN VISUAL MODE) with the "!". I've definitely used "command mode" before with the 'bang' , but i was not aware of THAT REALLY NEAT TRICK!! Thank you, subbed!
Ctrl-p/Ctrl-n isn't autocompletion. It's completion. The prefix "auto" usually refers to the popup showing up automatically on each keystroke. Your can use @@ to repeat your latest macro. While ! is very useful, Vim actually has :sort built in. You can also use g in visual mode to increment numbers in multiple lines linearly
Great video. You can also use the last technique to increment a whole list, suppose you have: 1. 1. 1. 1. 1. Then in visual mode you can select from the second 1. to the end and type `g Ctrl-A` and it will increment the list.
You can apply-repeat your macro from the cursor until EOF via: VG:normal @x Where x is your chosen macro ('a', in this video) You Visually select until the End Of the File (G), then apply the "normal @x" command.
You can make a recursive macro by having it call itself. In the example, appending @a to the macro it would repeatedly call itslelf until it hit an error, which in this case would be when it tried to move past the end of the file.
I n remapped my arrow keys to navigate between panes and SHIFT left and right arrow keys to scroll through buffers in vim. Super useful. Also considering SHIFT up and down for navigating local marks.
I’ve been using vi / vim for 25+ years. Usually when I watch these sorts of videos they are either pretty basic, rely on plugins, or are very niche to one person’s workflow. This one was pretty good and well above the average. gf / gx and being able to handle file encryption are things I didn’t know about that I can certainly see being very useful.
@@antb533 from this video? Any video that discusses registers/macros gets a +1 from me; it’s a very underrated feature, which IIRC dates back to OG vi. :normal is a feature that I see the usefulness of, but rarely use. g is a Vimism that that introduces a lot functionality that rarely gets discussed in a lot of these “advanced vim” videos. I especially appreciate that this video focuses on Vim. Not NeoVim, but Vim. And not plugins. Outside of this video, some of the features I enjoy about Vim is the ability to use :grep and :make (along with their associated “prg” settings) to populate a QuickFix window that lets me quickly jump between occurrences of patterns or error/warnings. Touched on in this video: using ! to filter the buffer or selected lines through an extensor command. I use this frequently with jq to pretty format large json objects.
1. Sweet, I knew that one 2. Lmao. From the command line: vim -p [file1] [file2] opens two files in tabs, switch between by pressing 'gt' aka go tab. Edit your tab colors in .vimrc. Open all files in single directory, in tabs, with vim -p * 3. Recordings are great. Don't use that to comment out code though, that's something I did commonly. Use visual block at the top and comment downwards: Ctrl + v, go down, press shift + i, enter your language's comment character, press escape. All commented. 4. Pretty cool, didn't know that, but visual block mode will do that more intuitively imo. Ctrl + v, highlight lines to edit, shift + i, call(" , Ctrl + v again, shift + A, ");, done. 5. Love bash commands in Vim. So hot. Run git commands, create/delete files, append contents of files to other files.. Do anything. 6. What. That's dope. Fuck I wish this worked with like, web framework codebases but those paths are usually defined/appended based on their own rules :/ 7. Okay this one makes me really happy. I like this one. 8. I should really just read the manual at this point. Spelling good is nice. 9. What the fuck.
False. While Neovim is neat, it's not made for productivity. The hours I wasted because something updated and broke one thing or another... If you want to tinker, Neovim is great. If you just want to be productive in Vim, stick with Vim. Much more stable API, no constant switching between whatever is the newest plugin manager, etc.
@@NostraDavid2not if you know how to use it well. The productivity boost you get using it every day far out way the occasional hiccup you get sorting out broken plugins after an update. Usually doesn't take more than an hour, and that happens like once or twice a year.
What an exceptional video! I have hours of watch time on the topic, but this is gold! Thank you for teaching me things that will improve my life. You are a true professional and you inspire me
First, great video. I love your presentation. It's high quality. Thank you. I liked and subscribed with notifications. Would you mind making a video showing what tools you use to make your tutorial videos? I imagine you're using OBS Studio? It would be nice to see your setup and process. I do think it would be helpful if you would index your content in the comments of you post. I'm providing it for this video below: 0:28 - Auto-complete 1:50 - Buffers 4:02 - Recordings 6:32 - : normal 9:07 - : ! command 11:18 - Open files /URLs with gf / gx 12:36 - Encrypting files with :X 0:28 - Auto-complete 13:55 - AutoSource 16:00 - Spell Checking 18:10 - Arithmetics
Buffers are even easier to use than how you present them: :ls gives you a list of all your open buffers :b lets you switch to any buffer by name *with completion* CTRL-^ and CTRL-6 let you switch between the two most recent buffers instantly. With this workflow, I pretty much never close buffers manually (I'd usually close Vim before the number of buffers becomes hard to manage anyway).
If that works for you great :) My mental model follows more a sorted list that I cycle though like left and right (like browser tabs) which works well for me
Well I knew all of these since the way I learned Vim was to just edit random text files in a pure non-configured Vim editor with no LSP or anything for two weeks. These are not advanced features but they're pretty basic but I'm still going to like this video so more people can find your video so that the word of Vim can be spread.
That's the regular search highlighting in Vim. If it looks different in your editor, check out my Vim config: github.com/sdaschner/dotfiles/blob/master/.vimrc
@@SebastianDaschnerIT apologies, I meant that it would be nice to be able to see the entered keys for longer. And thanks for explaining recordings, up to now I never used those and hated to be entangled in that mode lol
As for tips just try to get as much practice & exposure as possible, i.e. try to change it in the envs where you code the most (editors, IDEs with vi mode, ...). For tutorials I found this helpful: danielmiessler.com/study/vim/
Hello, is there trick or command or control to auto complete the brackets. like on typing open bracket we should get the closed bracket automatically. If yes please let me know.
Q: How can I activate a vim feature? My Register "+ and "* are not existing. when i watch :version there is a -(minus sign) before the -clipboard. How can i activate +clipboard to have the Register "+ and "* thanks for awnsering greatings Sven
IIRC there might be some steps that you need to do from your operating system and shell integration to have these system clipboard registers available... but your best bet is to search for your particular OS / distribution and shell setup.
If it's only these three entries, I'd just jump to each number and insert it directly (`i"` and repeat two times with `.` and then `a"`). If it's many entries, I'd search-replace the comma to be on individual lines and use the `:norm` command like shown in the video.
I'm sure there should be a better way, but using regex and replace within the visual select you can achieve this. first select all inside {} -> vi{ :s/\%V\(\w*\)/"\1"/g \%V -> to affect only selected and not the entire line \( \w*\) -> capture word (which is (\w*) escaped) /"\1" -> replace with " and \1 is the previously captured word /g -> global It's a bit complex but well, it works lol
hey how do you use norm to enter insert mode and then back to normal mode?? I need to paste the first word of each line at the end of the same line and I don't know how to do it
To input a non-printing character into a command (or anywhere, really), you can press '' followed by the key you want (escape, in this case). I was able to globally copy the first word of each line to the end of it, with a space separator, using this: :v/^$/ norm ^yiWA ^[p Where '^[' is where I used ''. That's the _caret notation_ string for . So that's "go to start, yank inner Word, Append space, escape, paste", to clarify the string. :normal can take a line range, so '% norm' will run it on all lines, but in this case the command tries to duplicate blank lines, so I instead used ':v/^$/' to skip them. ( ':v' is the inverse form of ':(g)lobal', a "global not". ':g!' also works.) It's also possible to use the :execute command to build a normal command with text-based escapes: :v/^$/ exec "norm yiWA \p" A final option is to just record your actions for a single line as a macro, "qa", then use ":v/^$/ norm @a" to run it on every line. 'q' records everything as-is, including movements between modes.
Make Upercase with macro recording and norm: Record for 1 Line qavUwvUA! (every word Uppercase and ! and the end of line). Then marks the lines (sample 20 lines below): jV20j Now run the macro for each line: :norm @a You don't must go to the beginning of the line and to the next line in the macro. If you record a macro that finds text, like qa0f!a!!! (begin of line, find !, add !!!) And runs for 20 lines its only work if EVERY line has a ! Execution was break if one line has no ! !!!! The :norm @a execute the macro for each line, if one line has no ! this line was ignored, but it continues at the next... -> it works
Thank you! Usefull, but please explane your stroks next time. Because your tipping was to fast for me. Understanding and watch the keys is hard work for the audience!
Never is a strong word ;) I use Vim for smaller text editing tasks. Otherwise I kind of agree with you, I use IdeaVim in my IDE: blog.sebastian-daschner.com/entries/my-favorite-ideavim-features
@@ChrisCox-wv7oo i do legwork where i feel the need... other places, i simply ask. if someone does it, then good, otherwise, no harm given or took. pretty simple and str8forward. > _"Seriously? How do you leave a comment like that without doing a little bit of legwork yourself."_
A note on recordings (or macros): if you save the macro in the a register, and after using it you realized that you need to correct (or add) one aspect of the commands that you recorded, you can print the a reg in the current file typing "app then you make the changes and to replace the new version of the macro, you can type "ayy. Amazing stuff.
The best tip in the comments.
I was going to mention looping within a recording, this is much more useful.
Thx!
Ayy
You don't need to use echo to do maths operations in Vim. In insert mode if you type = 1+200/4 you will get the same answer 51 appear in your doc.
For the other example you can store 1 + 2 +...+13 in a register in normal mode:
"lyy (this stores the line in a register called l, l can be any letter)
then in insert mode:
= l
Basically = in insert mode is how to do maths in vim
To quickly write a list of numbers on separate lines you can (in normal mode) :put(range(1,10))
Nice, thanks!
:put =range(1,10)
@@elon3 Nice catch. Thank you
These commands work when you're in insert mode:
Type Ctrl-r, then press the = key. Then type in a formula, like 3*3 and hit return. It will insert 9.
Type the beginning of a line that is the same as some other line, for example, if you type "import", then type Ctrl-x Ctrl-l and it will present a pop-up menu with lines already in the file that begin with the same characters as what you've typed. Use Ctrl-p and Ctrl-n to navigate up and down that list, and hit return to insert the desired line.
Ctrl-x Ctrl-f and it will display all the filenames in the current directory. Use Ctrl-p and Ctrl-n to navigate up and down that list, and hit return to insert the desired filename. If you select a path, you can type Ctrl-x Ctrl-f again to navigate one level down in that path.
Ctrl-r % inserts the current filename.
When not in insert mode:
Ctrl-w f will open the file whose filename is under the cursor.
: Ctrl-f will allow you to open and edit the command history, and re-execute a command (or a modified command if you modify it) by pressing return on it.
:r !, and it will insert the results of that command. For example, :r !date will insert the current date, assuming you have the Unix date command in your path.
Nice, thanks for sharing! Most of them were new to me 🙂
It's refreshing to watch someone achieve so much with vanilla vim. It seems to me that today a lot of vim users including me look for plugins to do things instead of combing built in features. The Unix way is infinitely more powerful and adaptable. I learned a few new tricks today, Danke dir!
Well said! I'm glad to know even some new users are aware of that :)
But the unix way is not including everything in one program. That means a small core app + plugins would be more unix like.
But I get your point. I am wondering about all the filetree plugins when this functionality is builtin for ages.
@@vorrnth8734 In fact, even vim itself is built with that design in mind: makeprg, keywordprg, formatprg, equalprg, grepprg, cscopeprg
As a long time Emacser but a noob Vimmer, I have to say I appreciate this very much as well. It's important to get used to the vernacular before relying on the crutch of packages... and those kinds of videos are very thin on the ground.
I'd like to recommend the vim-speeddating plugin. It extends the and keys to operate on dates, ordinal numbers, and other similar patterns (customizable), and to operate on multiple visually-selected lines at once (creating incrementing lists).
As a daily driver of vanilla vim for years (relatively recent neovim convert), i as not aware that during selection you could run commands (IN VISUAL MODE) with the "!". I've definitely used "command mode" before with the 'bang' , but i was not aware of THAT REALLY NEAT TRICK!! Thank you, subbed!
you should still use neovim even without plugins. there have been major refactors from the original codebase that makes it much more performant.
Ctrl-p/Ctrl-n isn't autocompletion. It's completion. The prefix "auto" usually refers to the popup showing up automatically on each keystroke.
Your can use @@ to repeat your latest macro.
While ! is very useful, Vim actually has :sort built in.
You can also use g in visual mode to increment numbers in multiple lines linearly
Re autocompletion: Good point 🙂
Nice points, thanks for sharing!
Great video.
You can also use the last technique to increment a whole list, suppose you have:
1.
1.
1.
1.
1.
Then in visual mode you can select from the second 1. to the end and type `g Ctrl-A` and it will increment the list.
This is Gold !!
This trick is in help if i remember correctly
You can apply-repeat your macro from the cursor until EOF via:
VG:normal @x
Where x is your chosen macro ('a', in this video)
You Visually select until the End Of the File (G), then apply the "normal @x" command.
You can make a recursive macro by having it call itself. In the example, appending @a to the macro it would repeatedly call itslelf until it hit an error, which in this case would be when it tried to move past the end of the file.
I n remapped my arrow keys to navigate between panes and SHIFT left and right arrow keys to scroll through buffers in vim. Super useful. Also considering SHIFT up and down for navigating local marks.
I’ve been using vi / vim for 25+ years. Usually when I watch these sorts of videos they are either pretty basic, rely on plugins, or are very niche to one person’s workflow. This one was pretty good and well above the average. gf / gx and being able to handle file encryption are things I didn’t know about that I can certainly see being very useful.
what are your favorite tips?
@@antb533 from this video? Any video that discusses registers/macros gets a +1 from me; it’s a very underrated feature, which IIRC dates back to OG vi. :normal is a feature that I see the usefulness of, but rarely use. g is a Vimism that that introduces a lot functionality that rarely gets discussed in a lot of these “advanced vim” videos. I especially appreciate that this video focuses on Vim. Not NeoVim, but Vim. And not plugins.
Outside of this video, some of the features I enjoy about Vim is the ability to use :grep and :make (along with their associated “prg” settings) to populate a QuickFix window that lets me quickly jump between occurrences of patterns or error/warnings.
Touched on in this video: using ! to filter the buffer or selected lines through an extensor command. I use this frequently with jq to pretty format large json objects.
vim seems like a tool that is always giving features. I have been using vim for years but I always learn something new like in your video here.
you can check surround commands to (y)add, (d)remove or (c)change brackets around a text object and it is repeatable too
not just nice to know but incredibly productive when built in muscle memory, esp sending vim buffer in and out the unix cli pipelines
Great video, this is the only place where I could find a great example for the norm command.
timestamp or summary?
> _"only place where I could find a great example for the norm command"_
1. Sweet, I knew that one
2. Lmao. From the command line: vim -p [file1] [file2] opens two files in tabs, switch between by pressing 'gt' aka go tab. Edit your tab colors in .vimrc. Open all files in single directory, in tabs, with vim -p *
3. Recordings are great. Don't use that to comment out code though, that's something I did commonly. Use visual block at the top and comment downwards: Ctrl + v, go down, press shift + i, enter your language's comment character, press escape. All commented.
4. Pretty cool, didn't know that, but visual block mode will do that more intuitively imo. Ctrl + v, highlight lines to edit, shift + i, call(" , Ctrl + v again, shift + A, ");, done.
5. Love bash commands in Vim. So hot. Run git commands, create/delete files, append contents of files to other files.. Do anything.
6. What. That's dope. Fuck I wish this worked with like, web framework codebases but those paths are usually defined/appended based on their own rules :/
7. Okay this one makes me really happy. I like this one.
8. I should really just read the manual at this point. Spelling good is nice.
9. What the fuck.
best feature of vim is neovim
This 💯 I gave up on Vim and switched completely to neovim.
False. While Neovim is neat, it's not made for productivity. The hours I wasted because something updated and broke one thing or another...
If you want to tinker, Neovim is great. If you just want to be productive in Vim, stick with Vim. Much more stable API, no constant switching between whatever is the newest plugin manager, etc.
@@NostraDavid2not if you know how to use it well. The productivity boost you get using it every day far out way the occasional hiccup you get sorting out broken plugins after an update. Usually doesn't take more than an hour, and that happens like once or twice a year.
💯
@@NostraDavid2just don't update plugins
The gx command really got me. Thank you.
What an exceptional video! I have hours of watch time on the topic, but this is gold! Thank you for teaching me things that will improve my life. You are a true professional and you inspire me
Him writing goodbye world made me chuckle.
been using vim for years and didn't know some of this! gf to goto a file is great !
First, great video. I love your presentation. It's high quality. Thank you. I liked and subscribed with notifications. Would you mind making a video showing what tools you use to make your tutorial videos? I imagine you're using OBS Studio? It would be nice to see your setup and process.
I do think it would be helpful if you would index your content in the comments of you post. I'm providing it for this video below:
0:28 - Auto-complete
1:50 - Buffers
4:02 - Recordings
6:32 - : normal
9:07 - : ! command
11:18 - Open files /URLs with gf / gx
12:36 - Encrypting files with :X
0:28 - Auto-complete
13:55 - AutoSource
16:00 - Spell Checking
18:10 - Arithmetics
Thanks!
For my video process: blog.sebastian-daschner.com/entries/chroma-keying-video-setup
The feature of writing to the end of line was all what I was looking for, many many thanks. keep these amazing tips and tricks posted always,
What do you mean writing? Go to the end of the line with g?
Autosource mit Gpg ist schon ziemlich nice! Danke fürs teilen)
Great stuff! Followed along. Some stuff is new; some I'd forgotten. Will have to do it every day for a while to retain the info.
gx is super useful for me! I didn't know about it, thank you so much!!
Awesome, so helpful! I would love more videos like this.
really useful, didn't know some of these, thanks for sharing!
Thanks Sebastian for this great video. Learned a lot from you.
Hi Sebastian, thanks for these tips. BTW is your terminal font JetBrains Mono?
Yes, it is!
@@SebastianDaschnerIT Cool. Thanks. I switched to it now and looks great.
Buffers are even easier to use than how you present them:
:ls gives you a list of all your open buffers
:b lets you switch to any buffer by name *with completion*
CTRL-^ and CTRL-6 let you switch between the two most recent buffers instantly.
With this workflow, I pretty much never close buffers manually (I'd usually close Vim before the number of buffers becomes hard to manage anyway).
If that works for you great :) My mental model follows more a sorted list that I cycle though like left and right (like browser tabs) which works well for me
Lots of great stuff here. Well done!
This is really good. Thanks!
Well I knew all of these since the way I learned Vim was to just edit random text files in a pure non-configured Vim editor with no LSP or anything for two weeks.
These are not advanced features but they're pretty basic but I'm still going to like this video so more people can find your video so that the word of Vim can be spread.
Really nice and helpful... Thanks!
Awesome video! I really enjoyed it!
Ok that recording thing is just crazyyyyyy
Thanks a lot! How did you get the syntax highlighting (at 20:33) when putting the regex together?
That's the regular search highlighting in Vim. If it looks different in your editor, check out my Vim config: github.com/sdaschner/dotfiles/blob/master/.vimrc
great video, thanks!
I only wish we could see your cmd line as you type
Thanks! Are there any commands from the cli that I typed that you missed? I don't quite get that comment
@@SebastianDaschnerIT apologies, I meant that it would be nice to be able to see the entered keys for longer. And thanks for explaining recordings, up to now I never used those and hated to be entangled in that mode lol
the zsh at the end is doped 😂😂😂
I find weird that you call macros recordings and auto commands autosourcing. Besides that great video!
good tips ..
Great tips.
Great video!
Any recommended tips and trick for beginner using plain vim without the plugin?
As for tips just try to get as much practice & exposure as possible, i.e. try to change it in the envs where you code the most (editors, IDEs with vi mode, ...).
For tutorials I found this helpful: danielmiessler.com/study/vim/
Hello, is there trick or command or control to auto complete the brackets. like on typing open bracket we should get the closed bracket automatically. If yes please let me know.
There are multiple Vim plugins for that such as AutoClose. Haven't use any of them so can't comment but you can start from there
Teaching is not for everyone
But thank you for sharing
Q: How can I activate a vim feature?
My Register "+ and "* are not existing. when i watch :version there is a -(minus sign) before the -clipboard.
How can i activate +clipboard to have the Register "+ and "*
thanks for awnsering
greatings
Sven
IIRC there might be some steps that you need to do from your operating system and shell integration to have these system clipboard registers available... but your best bet is to search for your particular OS / distribution and shell setup.
i would find it more helpful if the display of the keys you are hitting last for more than a blink of an eye
I find norm to be most useful in a g or v command e.g: g/Pattern/norm A;
Oh, that's also a good one :)
Encryption is not include in Neovim…
Does someone know if there is some plugin to open vim’s encrypted file with neovim ?
How to do “” in array
arr[]={1,2,2}
To
arr[]={“1”,”2”,”3”}
If it's only these three entries, I'd just jump to each number and insert it directly (`i"` and repeat two times with `.` and then `a"`).
If it's many entries, I'd search-replace the comma to be on individual lines and use the `:norm` command like shown in the video.
@@SebastianDaschnerIT okay can u make in future video about set -o vi mode
I'm sure there should be a better way, but using regex and replace within the visual select you can achieve this.
first select all inside {} -> vi{
:s/\%V\(\w*\)/"\1"/g
\%V -> to affect only selected and not the entire line
\( \w*\) -> capture word (which is (\w*) escaped)
/"\1" -> replace with " and \1 is the previously captured word
/g -> global
It's a bit complex but well, it works lol
should change the tilte
10 Advanced Vim Features (You Probably Didn't Know) (If you use it to create notes)
Best vim feature, to configure your emacs, it's not a sin it's a penance :)
For arithmetic bc is a better alternative than the shell - V :! bc
Subbed
hey how do you use norm to enter insert mode and then back to normal mode?? I need to paste the first word of each line at the end of the same line and I don't know how to do it
I mostly use the :norm together with the visual mode, i.e. V -> select lines -> :norm ... -> Enter and you're back in normal mode
To input a non-printing character into a command (or anywhere, really), you can press '' followed by the key you want (escape, in this case).
I was able to globally copy the first word of each line to the end of it, with a space separator, using this:
:v/^$/ norm ^yiWA ^[p
Where '^[' is where I used ''. That's the _caret notation_ string for .
So that's "go to start, yank inner Word, Append space, escape, paste", to clarify the string.
:normal can take a line range, so '% norm' will run it on all lines, but in this case the command tries to duplicate blank lines, so I instead used ':v/^$/' to skip them.
( ':v' is the inverse form of ':(g)lobal', a "global not". ':g!' also works.)
It's also possible to use the :execute command to build a normal command with text-based escapes:
:v/^$/ exec "norm yiWA \p"
A final option is to just record your actions for a single line as a macro, "qa", then use ":v/^$/ norm @a" to run it on every line. 'q' records everything as-is, including movements between modes.
Make Upercase with macro recording and norm:
Record for 1 Line
qavUwvUA!
(every word Uppercase and ! and the end of line).
Then marks the lines (sample 20 lines below):
jV20j
Now run the macro for each line:
:norm @a
You don't must go to the beginning of the line and to the next line in the macro.
If you record a macro that finds text, like qa0f!a!!!
(begin of line, find !, add !!!)
And runs for 20 lines its only work if EVERY line has a !
Execution was break if one line has no ! !!!!
The :norm @a execute the macro for each line, if one line has no ! this line was ignored, but it continues at the next... -> it works
:X doesnt work in neovim :(
Yes, that's unfortunate :( Maybe a manual approach using PGP can help you
Thank you!
Usefull, but please explane your stroks next time.
Because your tipping was to fast for me.
Understanding and watch the keys is hard work for the audience!
12:35 It's not possible encrypt any file in Nvim I guess. Not worked for me.
yes in nvim it doesn't seems to be working, but in vim,it is there
Typing `:help encrypt` gives a note saying it has been removed. The github issue threads about it are pretty funny
Last command is :.shell (bash, zsh itd.) is that true?
:.!zsh yes
My key mapping for that is `nmap !!zsh`
do u use vim or idea for java development?
Both, I use IdeaVim: blog.sebastian-daschner.com/entries/my-favorite-ideavim-features
I need understand how to read help and use it like pro
Man i dont even know the normal features not talking about advanced
Normal is awesome
Using an ide over vim, never makes sense, never... =p
Never is a strong word ;) I use Vim for smaller text editing tasks. Otherwise I kind of agree with you, I use IdeaVim in my IDE: blog.sebastian-daschner.com/entries/my-favorite-ideavim-features
--/\ who is
Vim provides not only basic calculation
Try 123*123
Think you mean Ctrl+R = in insert mode
no timestamps? not even a summary list comment?
Seriously? How do you leave a comment like that without doing a little bit of legwork yourself.
@@ChrisCox-wv7oo i do legwork where i feel the need... other places, i simply ask. if someone does it, then good, otherwise, no harm given or took. pretty simple and str8forward.
> _"Seriously? How do you leave a comment like that without doing a little bit of legwork yourself."_
I thought I was a bit of a vi[m] ninja having been using it for 30 years, but I didn't know about 1/2 of these tips. Top work, this is great.
Thanks, yes same here, I'm also still seeing new things
What's the meaning of dot in front of the exclamation mark `:.!zsh` on the last bonus tip?
It's a range declaration, in this case current line (text processing command have such a syntax: `: [ range ] command [ args ... ]`)
I often find that just using `s` on a range is faster than `:norm`. If you need to wrap a list often, consider `:'
Nice qx q @x cool.