38
votes
How can I display tabs as characters?
Highlighting tabs
Temporary Tab highlighting
For occasional use, one can simply highlight all tabs in a document using the following search / command:
/\t
To remove the highlighting, simply type :noh ...
32
votes
Accepted
Setting TAB to 2 spaces
Have you sourced your .vimrc since making these changes? When having vim open just type source ~/.vimrc (assuming it is in it's default location)
EDIT: This could help too
18
votes
Accepted
How to remove Neovim trailing white space?
This should do the trick:
vim.api.nvim_create_autocmd({ "BufWritePre" }, {
pattern = { "*" },
command = [[%s/\s\+$//e]],
})
Be sure to read the h:nvim_create_autocmd() for ...
17
votes
Accepted
Vim doesn't use the correct indentation in Python files
It gets reset by the Python filetype plugin; from /usr/share/vim/vim74/ftplugin/python.vim:
" As suggested by PEP8.
setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
This file is loaded ...
15
votes
Accepted
What is the rationale for \r and \n meaning different things in s command?
At the most basic level, there's already an asymmetry between the search and replace portions of :substitute because the former is a regular expression and the latter is text, with specific additional ...
10
votes
How can I display tabs as characters?
I personally like the use of the plugin indentLine, which displays a vertical line at indentation levels.
It is of great help especially in python, where the indentation is important.
Among other ...
10
votes
Accepted
delete entire line after first whitespace on every line
The two commands below will reduce every line to the first sequence of non-whitespace character followed by a space:
from
0.453945 -2.14126e-54 3.40152e-49 101325 214.355
to
0.453945 <-- space
...
10
votes
Accepted
How to show illegal whitespace (such as unbreakable space) in source code?
List & Listchars
'list' is a boolean option that, when set, instructs vim to display whitespace characters. And it is completely customizable using 'listchars'.
For example, to show non-breaking ...
9
votes
How to split a line into multiple lines efficiently?
The easiest way I've found to split lines in Vim is the normal mode command gq (type both letters in quick succession in normal or visual mode).
In visual mode, it will split whatever is selected, in ...
9
votes
Accepted
What does vim consider a paragragh?
You may want to move to the next section:
]]
Documentation:
:h paragraph
A paragraph begins after each empty line, and also at each of a set of
paragraph macros, specified by the pairs of ...
9
votes
Accepted
vim search for arbitrary combination of spaces and tabs
If you're looking for a substitute command:
:s/a[ \t]\+b/c/
The default regex mode doesn't see + as an operator. You have to escape it to make it special.
You can also use:
:s/a\s\+b/c/
\s is Vim'...
9
votes
How do I replace single whitespaces without affecting multi-whitespace such as indentation in Vim?
The substitution is easier to read with word-boundaries in my opinion, and very magic mode makes typing easier:
:%substitute/\v>\s+</_/g
8
votes
Accepted
SpecialKey foreground color w/ cursorline set
I've been struggling with that behavior for a long time.
Basically, the foreground color of SpecialKey on the current line is changed to the foreground color of Normal if:
the cursorline option is ...
8
votes
Accepted
Moving to the end of the last word on a line
g_ will to go to the last non-blank character of the line
For more help see :h g_
8
votes
Accepted
What does breakat&vim mean?
It resets the breakat option to the Vim default: ^I!@*-+;:,./?.
Where ^I stands for the tab character.
You get the corresponding help paragraph with the :help :set-default command.
:se[t] {option}&...
7
votes
Accepted
Expand <TAB> into 2 spaces when and only when editing HTML
Put this in your .vimrc file:
autocmd BufRead,BufNewFile *.htm,*.html setlocal tabstop=2 shiftwidth=2 softtabstop=2
Briefly, autocmds get processed when the specified events occur for the specified ...
7
votes
How to remove Neovim trailing white space?
I agree with the accepted answer.
Something that begins to annoy quickly is that the cursor position is reset to the beginning of the line.
To keep it, one can use getpos/setpos like this:
vim.api....
6
votes
How to add space around a symbol using vim?
I'm not sure why you don't want to use search/replace, but here's a reusable command:
command! HTMLArgEq %s/\s\@<!=\+\s\@!/ \0 /g
It uses search/replace, but you only need to create it once. ...
6
votes
Accepted
Stop vim from removing whitespace on save for diff files
Since there was nothing explicit in my .vimrc that acted on only-whitespace lines and the diff syntax file did no such thing either, this had to with my plugins somehow. I find out that I had an ...
6
votes
What is the rationale for \r and \n meaning different things in s command?
A NUL byte is a string terminator in C, and for this reason Vim uses this convention, described in the manual at :h NL-used-for-Nul:
<Nul> characters in the file are stored as <NL> in memory. ...
6
votes
Accepted
Moved from vim to neovim and now <BS> deletes 4 spaces at a time, instead of 1 as I'm used to. How to fix?
Neovim sets smarttab by default, which will cause this behaviour. Try turning it off:
:set nosmarttab
5
votes
How to add space around a symbol using vim?
Here's what I would do. Visually select all of your HTML you want to do this to, and hit the following:
:norm f=i<space><C-v><esc>la<space>
Note that <C-v>, <esc>,...
5
votes
Accepted
From a TextChanged autocommand event, how to get the range that has been changed?
Is your concern about performance? Calling out to Python code will add unneeded overhead that would make an attempt at performance optimization moot. In any case, you can get the boundaries with ...
5
votes
delete entire line after first whitespace on every line
If you wanted to delete entire line starting with a space, This pattern will be useful.
:g/^\s.*/d
g -global
^ - start of the line
\s - space
.* - anything after that
d - delete
If you want the ...
5
votes
How can I display tabs as characters?
You may want to show tabs differently in a regular terminal and gvim.
set list!
if has('gui_running')
set listchars=tab:▶\ ,trail:·,extends:\#,nbsp:.
else
set listchars=tab:>.,trail:.,...
5
votes
How can I display tabs as characters?
This can be easily achieved using listchars by specifying the tab as: ,tab:\ \ ┊,
By providing two escaped spaces in front of your tab declaration, vim will repeat the spaces. This is opposed to the ...
5
votes
Accepted
ignoring spaces in search like ignoring cases
You can use a mapping and replace all spaces by e.g. \_s* which would match linebreaks as well. Something like this should work:
:func! ReplaceSearch()
if getcmdtype() =~# '[?/]'
return ...
5
votes
Removing redundant whitespaces on save/write
Probably something like that should work:
autocmd BufWritePre * :%s/\s\+$//
The autocommand triggers :%s/\s\+$// each time a buffer will be written. And the substitution command removes all of the ...
5
votes
How to remove trailing white-spaces automatically while typing?
I'd do it with an autocommand that fires whenever you leave insert mode:
function! PreciseTrimWhiteSpace()
" We need to save the view because the substitute command might
" or might not move the ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
whitespace × 85tab-characters × 15
indentation × 13
vimrc × 5
neovim × 5
regular-expression × 5
syntax-highlighting × 4
search × 4
substitute × 4
cursor-movement × 4
highlight × 4
line-breaks × 4
vimscript × 3
command-line × 3
cut-copy-paste × 3
normal-mode × 3
functions × 3
cursor-motions × 3
autocmd × 2
colorscheme × 2
replace × 2
formatting × 2
cursor × 2
filetype-python × 2
navigation × 2