This is the 7th post of my post series on nifty Nvim/Vim techniques that will make my editing experience easier.
Use :copy command:
:[range]copy {address}[range] is a line range that has very flexible syntax, see :h cmdline-ranges for the details. {address} is the destination address you
want to copy text to.
Let’s see some concrete examples.
Copy line 1 to 3 to below line 11:
:1,3copy 11Copy three lines from current cursor position to the end of the file:
:.,.+2copy $Ref:
Sometimes, we want to restart Vim/Neovim, but do not want to lose the current
state since we may have opened a lot of files. A simple way is to use
:mksession command. It will create a file named Session.vim. Or you can
provide a custom name for it :mksession my-sess.vim.
When you start Vim/Neovim later, you can use :source my-sess.vim to restore
the state of previous state of Vim, with all the previous files opened.
There is also vim plugins such as vim-obession that helps you simplify the management of sessions.
Ref:
To delete lines matching a pattern, we can use the :global command:
:%g/some pattern/dSome explanation on this command:
%: specify the whole file. We can also specify a custom range, e.g., 2,10 (line 2 to line 10). See also : h cmdline-ranges.some pattern: The pattern we want to match. It can be normal text or regular expressions.d: For command :delete.To delete lines not matching a pattern, we simply reverse the :global command
via :global!:
:%g!/some pattern/dwhich will delete lines not matching some pattern.
:g! is also equivalent to :vglobal (or :v) command (think of it as grep -v):
:%v/some pattern/dRef:
According to answer here, we can
simply the use the :helpclose command to close the help window, which is by
far the simplest way I have found.
When we search a pattern, we may want to go to the first occurence of the
search pattern. Just press ggn in normal mode:
gg: go the begining of the filen: search forward for the pattern.Ref:
A vim command may output a lot of text, making it hard for us to find what we
want. For example, :highlight command will print a lot of lines of the
highlight group info.
We can use :filter to get only what we are interested. The syntax is:
:filter /pattern/ [cmd]where pattern is the string pattern we want to search and [cmd] is a vim
command. If we want to ignore cases, we can add \c before pattern:
:filter /\cpattern/ [cmd]For example, to search highlight groups that contains the word search
(ignoring the case), we use the following comamnd:
:filter /\csearch/ highlightwe only get the following three lines instead of the hundreds of lines:
IncSearch xxx cterm=reverse gui=reverse guifg=#fe8019 guibg=#1d2021
Search xxx cterm=reverse ctermfg=0 ctermbg=11 gui=reverse guifg=#fabd2f guibg=#1d2021
Searchlight xxx links to ErrorMsgRef:
This is the 7th post of my post series on nifty Nvim/Vim techniques that will make my editing experience easier.
Use :copy command:
:[range]copy {address}[range] is a line range that has very flexible syntax, see :h cmdline-ranges for the details. {address} is the destination address you
want to copy text to.
Let’s see some concrete examples.
Copy line 1 to 3 to below line 11:
:1,3copy 11Copy three lines from current cursor position to the end of the file:
:.,.+2copy $Ref:
Sometimes, we want to restart Vim/Neovim, but do not want to lose the current
state since we may have opened a lot of files. A simple way is to use
:mksession command. It will create a file named Session.vim. Or you can
provide a custom name for it :mksession my-sess.vim.
When you start Vim/Neovim later, you can use :source my-sess.vim to restore
the state of previous state of Vim, with all the previous files opened.
There is also vim plugins such as vim-obession that helps you simplify the management of sessions.
Ref:
To delete lines matching a pattern, we can use the :global command:
:%g/some pattern/dSome explanation on this command:
%: specify the whole file. We can also specify a custom range, e.g., 2,10 (line 2 to line 10). See also : h cmdline-ranges.some pattern: The pattern we want to match. It can be normal text or regular expressions.d: For command :delete.To delete lines not matching a pattern, we simply reverse the :global command
via :global!:
:%g!/some pattern/dwhich will delete lines not matching some pattern.
:g! is also equivalent to :vglobal (or :v) command (think of it as grep -v):
:%v/some pattern/dRef:
According to answer here, we can
simply the use the :helpclose command to close the help window, which is by
far the simplest way I have found.
When we search a pattern, we may want to go to the first occurence of the
search pattern. Just press ggn in normal mode:
gg: go the begining of the filen: search forward for the pattern.Ref:
A vim command may output a lot of text, making it hard for us to find what we
want. For example, :highlight command will print a lot of lines of the
highlight group info.
We can use :filter to get only what we are interested. The syntax is:
:filter /pattern/ [cmd]where pattern is the string pattern we want to search and [cmd] is a vim
command. If we want to ignore cases, we can add \c before pattern:
:filter /\cpattern/ [cmd]For example, to search highlight groups that contains the word search
(ignoring the case), we use the following comamnd:
:filter /\csearch/ highlightwe only get the following three lines instead of the hundreds of lines:
IncSearch xxx cterm=reverse gui=reverse guifg=#fe8019 guibg=#1d2021
Search xxx cterm=reverse ctermfg=0 ctermbg=11 gui=reverse guifg=#fabd2f guibg=#1d2021
Searchlight xxx links to ErrorMsgRef: