Zmień definicję zakładki jako 4 spacje
Moje obecne ustawienie zakłada 8 spacji; jak mogę je przedefiniować?
9 answers
To zależy, co masz na myśli. Czy chcesz, aby rzeczywiste znaki tabulacji w pliku były wyświetlane z 4 spacjami, czy przez" tab "masz na myśli wcięcie, wygenerowane przez naciśnięcie klawisza tab, co spowoduje, że plik będzie dosłownie zawierał (do) 4 spacje dla każdej" tab", którą wpisujesz?
W zależności od odpowiedzi, jeden z następujących zestawów ustawienia powinny działać dla Ciebie:
-
Dla znaków tabulacji, które pojawiają się 4-spacje-szerokie :
set tabstop=4
Jeśli używasz rzeczywistego znaku tabulacji w kodzie źródłowym, prawdopodobnie chcesz również te ustawienia (są to rzeczywiście domyślne, ale możesz chcieć je ustawić defensywnie):
set softtabstop=0 noexpandtab
Na koniec, jeśli chcesz, aby wcięcie odpowiadało pojedynczej zakładce, powinieneś również użyć:
set shiftwidth=4
-
Dla wcięć, które składają się z 4 znaków spacji , ale są wprowadzane za pomocą klawisza tab:
set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab
Aby powyższe ustawienia stałe dodaj te linie do twojego vimrc .
Jeśli chcesz wprowadzić zmiany lub po prostu chcesz zrozumieć, co oznaczają te wszystkie opcje, Oto podział na poszczególne opcje:]}Więcej informacji na ten temat można znaleźć w sekcji vim (np.]}
tabstop
Szerokość twardego stopu tabulacji mierzona w "spacjach" -- w rzeczywistości (maksymalna) szerokość rzeczywistego znaku tabulacji.
shiftwidth
Wielkość "wcięcia". Jest również mierzony w spacjach, więc jeśli twój kod wcięć podstawowych ze znakami tabulacji następnie
shiftwidth
ma być równa liczbie znaków tabulacji razytabstop
. Jest to również używane przez rzeczy takie jak=
,>
i<
komendy.
softtabstop
Ustawienie tej wartości na niezerową wartość inną niż
tabstop
spowoduje, że klawisz tab (w trybie wstawiania) Wstaw kombinację spacji (i ewentualnie tabulatorów), aby symulować tab zatrzymuje się na tej szerokości.
expandtab
Włączenie tego spowoduje, że klawisz tab (in insert tryb) wstawiaj spacje zamiast znaki tabulacji. Wpływa to również na zachowanie polecenia
retab
.
smarttab
Włączenie tej opcji spowoduje, że klawisz tab (w trybie insert) wstawi spacje lub tabulatory do przejdź do następnego tiret następnej zakładki, gdy kursor znajduje się na początku linii (tzn. tylko poprzedzające znaki są białymi znakami).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-04 22:36:39
Aby definiować to na stałe dla bieżącego użytkownika, Utwórz (lub edytuj) plik .vimrc
:
$ vim ~/.vimrc
Następnie wklej poniższą konfigurację do pliku. Po ponownym uruchomieniu Vima zostaną zastosowane ustawienia karty.
set tabstop=4 " The width of a TAB is set to 4.
" Still it is a \t. It is just that
" Vim will interpret it to be having
" a width of 4.
set shiftwidth=4 " Indents will have a width of 4
set softtabstop=4 " Sets the number of columns for a TAB
set expandtab " Expand TABs to spaces
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-20 19:28:19
Lub skrót dla vim modeline:
vim :set ts=4 sw=4 sts=4 et :
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-10 06:22:11
Skopiowałem i wkleiłem to do mojego .plik vimrc:
" size of a hard tabstop
set tabstop=4
" always uses spaces instead of tab characters
set expandtab
" size of an "indent"
set shiftwidth=4
Pierwsze 2 ustawienia oznaczają, że po naciśnięciu Tab dostaję 4 spacje.
Trzecie ustawienie oznacza, że kiedy robię V>
(tj. visual i indent), dostaję również 4 spacje.
Nie tak wyczerpująca jak przyjęta odpowiedź, ale może pomóc ludziom, którzy po prostu chcą coś skopiować i wkleić.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-28 10:49:43
Umieść pożądane ustawienia w ~/.plik vimrc -- patrz poniżej kilka wytycznych i najlepszych praktyk.
Istnieją cztery główne sposoby korzystania z tabs w Vimie:
-
Zawsze trzymaj 'tabstop' na 8, Ustaw 'softabstop' i 'shiftwidth' na 4 (lub 3 lub cokolwiek wolisz) i użyj 'noexpandtab'. Następnie Vim użyje kombinacji tabulatorów i spacji, ale pisanie i będzie zachowywać się tak, jakby tabulator pojawiał się co 4 (lub 3) znaki.
Uwaga: Ustawienie 'tabstop' na inne wartość niż 8 może sprawić, że Twój plik pojawi się źle w wielu miejscach(np. podczas drukowania).
Ustaw "tabstop" i "shiftwidth" na dowolne preferencje i użyj "expandtab". W ten sposób zawsze wstawisz spacje. Formatowanie nigdy nie będzie pomieszane po zmianie "tabstop".
Ustaw 'tabstop' i 'shiftwidth' na dowolne preferencje i użyj / modeline/, aby ustawić te wartości podczas ponownej edycji pliku. Działa tylko wtedy, gdy używasz Vima do edycji plik.
Zawsze Ustaw 'tabstop' i 'shiftwidth' na tę samą wartość i 'noexpandtab'. Powinno to zadziałać (tylko dla początkowych wcięć) dla każdego ustawienia tabstop, którego używają ludzie. Może być miło mieć tabulatory po pierwszym niepustym wstawionym jako spacje, jeśli to zrobisz. W przeciwnym razie wyrównane komentarze będą błędne, gdy 'tabstop' / align = "left" /
Źródło:
- vimdoc.sourceforge.net/htmldoc/options.html# 'tabstop'
:help tabstop
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-24 23:42:50
Jeszcze jedno, użyj:retab
aby przekonwertować istniejące tab
na spaces
http://vim.wikia.com/wiki/Converting_tabs_to_spaces
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-04 14:58:08
Dodaj wierszset ts=4
w~/.vimrc
plik dla użytkownika
lub/etc/vimrc
file for system wide
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-07 12:12:04
Istnieje kilka ustawień, które określają, czy używać spacji czy tabulatorów.
Oto przydatne funkcje, które można zdefiniować w pliku ~/.vimrc
:
function! UseTabs()
set tabstop=4 " Size of a hard tabstop (ts).
set shiftwidth=4 " Size of an indentation (sw).
set noexpandtab " Always uses tabs instead of space characters (noet).
set autoindent " Copy indent from current line when starting a new line (ai).
endfunction
function! UseSpaces()
set tabstop=2 " Size of a hard tabstop (ts).
set shiftwidth=2 " Size of an indentation (sw).
set expandtab " Always uses spaces instead of tab characters (et).
set softtabstop=0 " Number of spaces a <Tab> counts for. When 0, featuer is off (sts).
set autoindent " Copy indent from current line when starting a new line.
set smarttab " Inserts blanks on a <Tab> key (as per sw, ts and sts).
endfunction
Użycie:
:call UseTabs()
:call UseSpaces()
Aby używać go dla rozszerzeń plików, można użyć następującej składni (dodawanej do .vimrc
):
au! BufWrite,FileWritePre *.module,*.install call UseSpaces()
Zobacz także: Konwersja tabulatorów na spacje.
Oto kolejny fragment z Wikii, który może być użyty do przełączania między tabulatorami i spacjami :
" virtual tabstops using spaces
set shiftwidth=4
set softtabstop=4
expandtab
" allow toggling between local and default mode
function TabToggle()
if &expandtab
set shiftwidth=8
set softtabstop=0
set noexpandtab
else
set shiftwidth=4
set softtabstop=4
set expandtab
endif
endfunction
nmap <F9> mz:execute TabToggle()<CR>'z
Umożliwia korzystanie z 4 spacje dla każdej karty i mapowanie do F9 , aby włączyć ustawienia.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-26 22:24:38
:set sw=4
Zobacz Mastering the vi editor
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-01 18:10:30