ටැබ් අවකාශ 4 ක් ලෙස නැවත අර්ථ දක්වන්න


1115

මගේ වර්තමාන සැකසුම අවකාශ 8 ක් උපකල්පනය කරයි; මම එය නැවත අර්ථ දැක්විය හැක්කේ කෙසේද?


4
වඩා හොඳ, එය අවකාශ හතරකට සකසා එකවර ස්වයංක්‍රීය-ඉන්ඩෙන්ට් සක්‍රීය කරන්න: ටැබ් පළල සහිත ස්වයංක්‍රීය-ඉන්ඩෙන්ට් අවකාශ 4 කට සකසා ඇත
solid_liq

7
@ heinrich5991 මට එය තේරෙන්නේ නැත. පේළියක් ඉන්ඩෙන්ට් කර ඇති බව වටහා ගැනීමට මට අවකාශ 8 ක් අවශ්‍ය නොවන අතර, අවශ්‍ය ප්‍රමාණයට වඩා දිගු පෙළ පේළියක ඔබට දැකිය හැකි අක්ෂර සීමා කිරීම (අවම වශයෙන් එතීමට පෙර). නමුත් එක් එක් කෙනාට. :)
weberc2

40
argument heinrich5991 මගේ තර්කය වන්නේ "ඉන්ඩෙන්ට් රේඛාවක් පහසුවෙන් හඳුනා ගැනීමට හැකි තරම් සුළු ප්‍රමාණයක් භාවිතා කරන්න" යන්නයි. මගේ තක්සේරුව අනුව, යමෙකුට පහසුවෙන් හඳුනාගැනීමේ හැකියාව <3 අවකාශයන්හි වේගයෙන් පහත වැටෙන අතර එය අවකාශ 4 කින් වැඩි වීම නවත්වයි. එමනිසා, අවකාශ 4 ක් ඉක්මවා ඇති ඉන්ඩෙන්ටේෂන් නාස්තියකි, මගේ අත්දැකීම් අනුව.
weberc2

8
@ weberc2 වැඩි එකඟ විය නොහැක, යාළුවා. රූබී හෝ "නවීන දින ජාවාස්ක්‍රිප්ට්" කියවීම මට එතරම්ම තදබල ලෙස දැනෙන්නේ ඒ නිසාය. දැඩි ලෙස කැදැලි සහිත ව්‍යුහයන් අනුගමනය කිරීමට උත්සාහ කරන විට එය නීත්‍යානුකූලව මට අක්ෂි ආතතියක් ලබා දෙයි. දෙවියන්ගේ ජයග්‍රහණය සඳහා දෘ tab ටැබ්.

Answers:


1643

එය ඔබ අදහස් කරන දේ මත රඳා පවතී. ඔබට ඔබේ ගොනුව සැබෑ ටැබ් චරිත අවශ්යද පෙනී අවකාශයන් 4 පුරා, හෝ "ටැබ්" විසින් ඔබ අදහස් ඇත්තටම නැහැ එබුම ගොනුව ප්රතිපලය වනු ඇති ටැබ් යතුර එබීමෙන් විසින් ජනනය, වචනාර්ථයෙන් ඉඩක් චරිත 4 (දක්වා) අඩංගු ඔබ ටයිප් කරන සෑම "ටැබ්" එකක්ම?

ඔබගේ පිළිතුර මත පදනම්ව, පහත සඳහන් සැකසුම් කට්ටලවලින් එකක් ඔබ වෙනුවෙන් වැඩ කළ යුතුය:

  • අවකාශ 4 ක් පළල පෙනෙන ටැබ් අක්ෂර සඳහා :

    set tabstop=4
    

    ඔබ ඔබේ ප්‍රභව කේතයේ සත්‍ය ටැබ් අක්ෂර භාවිතා කරන්නේ නම් ඔබට මෙම සැකසුම් ද අවශ්‍ය වනු ඇත (මේවා ඇත්ත වශයෙන්ම පෙරනිමි වේ, නමුත් ඔබට ඒවා ආරක්ෂිතව සැකසීමට අවශ්‍ය විය හැකිය):

    set softtabstop=0 noexpandtab
    

    අවසාන වශයෙන්, ඔබට තනි ටැබ් එකකට අනුරූප වන පරිදි ඉන්ඩෙන්ට් එකක් අවශ්‍ය නම්, ඔබ ද මෙය භාවිතා කළ යුතුය:

    set shiftwidth=4
    
  • අවකාශ අක්ෂර 4 කින් සමන්විත නමුත් ටැබ් යතුර සමඟ ඇතුළත් කර ඇති ඉන්ඩෙන්ට් සඳහා:

    set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab
    

ඉහත සැකසුම් ස්ථිර කිරීමට මෙම රේඛා ඔබේ vimrc වෙත එක් කරන්න .

ඔබට ගැලපීම් කිරීමට අවශ්‍ය නම්, හෝ මෙම විකල්ප සියල්ලේ තේරුම තේරුම් ගැනීමට කැමති නම්, මෙන්න එක් එක් විකල්පයේ තේරුම බිඳ වැටීමකි:

tabstop

දෘ space ටැබ්ස්ටොප් එකක පළල “අවකාශ” වලින් මනිනු ලැබේ - සත්‍ය ටැබ් අක්ෂරයක (උපරිම) පළල effectively ලදායී වේ.

shiftwidth

"ඉන්ඩෙන්ට්" එකක ප්‍රමාණය. එය අවකාශයන්හි ද මනිනු ලැබේ, එබැවින් ඔබේ කේත පදනම ටැබ් අක්ෂර සමඟ ඉන්ඩෙන්ට් කරන්නේ නම් ඔබට shiftwidthටැබ් අක්‍ෂර වාර ගණන සමාන කිරීමට අවශ්‍ය වේ tabstop. මෙය =, >සහ <විධාන වැනි දේද භාවිතා කරයි.

softtabstop

මෙය ශුන්‍ය නොවන අගයකට සැකසීම tabstopටැබ් යතුර (ඇතුළු කිරීමේ ප්‍රකාරයේදී) මෙම පළලෙහි ටැබ් නැවතුම් අනුකරණය කිරීම සඳහා අවකාශයන්ගේ එකතුවක් (සහ සමහර විට ටැබ්) ඇතුළත් කරයි .

expandtab

මෙය සක්‍රිය කිරීමෙන් ටැබ් යතුර (ඇතුළු කිරීමේ ප්‍රකාරයේදී) ටැබ් අක්ෂර වෙනුවට අවකාශය ඇතුළත් වේ. මෙය retabවිධානයේ හැසිරීමට ද බලපායි .

smarttab

මෙය සක්‍රීය කිරීමෙන් ටැබ් යතුර (ඇතුළු කිරීමේ ප්‍රකාරයේදී) කර්සරය පේළියක ආරම්භයේ ඇති විට ඊළඟ ටැබ්ස්ටොප් එකේ ඊළඟ ඉන්ඩෙන්ට් වෙත යාමට අවකාශ හෝ ටැබ් ඇතුල් කරයි (එනම් එකම පෙර අක්ෂර සුදු අවකාශයයි).

මේවායින් වැඩි විස්තර සඳහා vim (උදා ) බලන්න:help 'optionname':help 'tabstop'


18
Makefiles සැමවිටම දෘ tab ටැබ් අක්ෂර භාවිතා කරන බව සහතික කිරීම ද වැදගත් ය, එසේ නොමැතිනම් ගොඩනැගීම් අසාර්ථක වනු ඇත! මම, ආකාරය පෙන්වා දී ඇත stackoverflow.com/questions/234564/...
Shervin Emami

30
Nd නිර්වචනය කර ඇත්තේ එයයි පද්ධති සැකසුම්. ~/.vimrcයනු පරිශීලකයාගේ විචිත්‍ර සැකසුම් වේ. බොහෝ අය පද්ධති සැකසුම් තනිවම තබා පරිශීලක සැකසුම් සංස්කරණය කරන්න. ~/.vimrcඔබ එය බොහෝ පද්ධති වල නිර්මාණය කරන තුරු නොපවතින බව සලකන්න .
ලෝරන්ස් ගොන්සාල්ව්ස්

4
Vim භාවිතා කරන්නන් set softtabstop=4විශේෂාංගය සැලකිල්ලට ගන්න ! ඔබේ කේතය කියවීමට lessහෝ වෙනත් සංස්කාරකවරයකු සමඟ හැරෙන්නට මම වෙහෙසට පත්ව සිටිමි vim. ඔබ ටැබ් එක අත්තනෝමතික ඉඩ ප්‍රමාණයක් ලෙස නැවත අර්ථ දක්වා ඇති හෙයින් (අනෙක් පද්ධතිය වෙනත් ආකාරයකින් සිතුවද)! :-)
Ogre Psalm33

7
අවකාශ 4tabstop=8 කින් සමන්විත ඉන්ඩෙන්ට් සඳහා භාවිතා කිරීමට මෙම පිළිතුර පවසන්නේ මන්දැයි තේරුම් ගැනීමට මට උදව් කළ හැකිද ? විවිධ සැකසුම් වල විස්තර කියවීමෙන් පසු මට හේතුව දැනගත නොහැකි විය. තවත් පිළිතුරක් භාවිතා කිරීම මට තව ටිකක් අර්ථවත් කරයි. tabstop=4
කොඩෝස් ජොන්සන්

7
Od කොඩොස් ජොන්සන් tabstopවිකල්පය දෘඩ ටැබ් අක්‍ෂරයක පළල පාලනය කරයි. 4 ක් පළල තනි ටැබ් අක්ෂරවලට වඩා ඔබේ ඉන්ඩෙන්ට්ස් අවකාශ අක්ෂර 4 කින් සමන්විත වීමට ඔබට අවශ්‍ය නම්, ඔබේ ටැබ් අක්‍ෂරයේ පළල වැදගත් නොවේ - වර්ග කිරීම . ප්‍රායෝගිකව, ටැබ් අක්ෂර නිසි ඉන්ඩෙන්ට් ලෙස වෙස්වලා ගැනීමේ අවස්ථාව අඩු කිරීම සඳහා, ඔබේ ටැබ් අක්‍ෂර පළල ඔබේ ඉන්ඩෙන්ට් වල පළලට වඩා වෙනස් වීමට ඔබට අවශ්‍ය විය හැකිය . ( list+ expandtabමෙහි ද උදව් කළ හැකිය) එසේම, 8-වර්‍ග-පුළුල් ටැබ් යනු “ප්‍රමිතිය” වේ - ඔබේ පර්යන්තය, පයිතන් සහ තවත් බොහෝ මෙවලම් පෙරනිමි 8-වර්‍ග-ටැබ් වලට පෙරනිමිය.
ලෝරන්ස් ගොන්සාල්ව්ස්

752

වත්මන් පරිශීලකයා සඳහා ස්ථිර පදනමක් මත මෙය අර්ථ දැක්වීම සඳහා, .vimrcගොනුව සාදන්න (හෝ සංස්කරණය කරන්න) :

$ vim ~/.vimrc

ඉන්පසු පහත වින්‍යාසය ගොනුවට අලවන්න. Vim නැවත ආරම්භ කළ පසු, ටැබ් සැකසුම් අදාළ වේ.

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

ඔබට ~ / .vimrc නොමැති නම්, / etc / vim / vimrc සමඟ උත්සාහ කරන්න. මගේ නඩුවේ උබුන්ටු 16.04 හි වින්‍යාස ගොනුව තිබේ. නමුත් මෙම ගොනුව වෙනස් කිරීමෙන් වින්‍යාසය ගෝලීයව භාවිතා කිරීමට හේතු වන බව මතක තබා ගන්න.
ටෝඩර් ටොඩොරොව්

5
තවත් එක් දෙයක්, :retabපවතින බවට පරිවර්තනය කිරීමට භාවිතා tabකරන්න spaces. vim.wikia.com/wiki/Converting_tabs_to_spaces
DawnSong

59

හෝ vim modeline සඳහා කෙටිමං:

vim :set ts=4 sw=4 sts=4 et :

34

අවකාශ හෝ ටැබ් භාවිතා කළ යුතුද යන්න නිර්වචනය කරන සැකසුම් කිහිපයක් තිබේ.

එබැවින් ඔබගේ ~/.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

භාවිතය:

:call UseTabs()
:call UseSpaces()

ගොනු දිගුවකට එය භාවිතා කිරීම සඳහා, පහත දැක්වෙන සින්ටැක්ස් භාවිතා කළ හැකිය (එකතු කරන ලදි .vimrc):

au! BufWrite,FileWritePre *.module,*.install call UseSpaces()

මෙයද බලන්න: ටැබ් අවකාශයට පරිවර්තනය කිරීම .


ටැබ් සහ අවකාශ අතර ටොගල් කිරීමට භාවිතා කළ හැකි විකියා වෙතින් තවත් ස්නිපටයක් මෙන්න :

" virtual tabstops using spaces
set shiftwidth=4
set softtabstop=4
set 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

එය සෑම ටැබ් එකකටම අවකාශ 4 ක් සහ F9සැකසුම් ටොගල් කිරීමට සිතියම් ගත කිරීම සක්‍රීය කරයි .


28

මම මෙය මගේ .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

පළමු සැකසුම් 2 හි අර්ථය වන්නේ මම ටැබ් එබූ විට මට අවකාශ 4 ක් ලැබෙන බවයි. තෙවන සැකසුම යනු මා කරන විට V>(එනම් දෘශ්‍ය හා ඉන්ඩෙන්ට්) මට අවකාශ 4 ක් ලැබෙන බවයි.

පිළිගත් පිළිතුර තරම් පුළුල් නොවන නමුත් යමක් පිටපත් කර ඇලවීමට අවශ්‍ය අයට එය උදව් වනු ඇත.


15

අපේක්ෂිත සැකසුම් ~ / .vimrc ගොනුවේ දමන්න - සමහර මාර්ගෝපදේශ සහ හොඳම භාවිතයන් සඳහා පහත බලන්න.

Vim හි ටැබ් භාවිතා කිරීමට ප්‍රධාන ක්‍රම හතරක් ඇත:

  1. සෑම විටම 'ටැබ්ස්ටොප්' 8 හි තබා, 'සොෆ්ට් ටැබ්ස්ටොප්' සහ 'මාරුව පළල' 4 ලෙස සකසන්න (හෝ 3 හෝ ඔබ කැමති ඕනෑම දෙයක්) සහ 'නොක්ස්පෑන්ඩ්ටාබ්' භාවිතා කරන්න. එවිට Vim ටැබ් සහ අවකාශයන්ගේ මිශ්‍රණයක් භාවිතා කරනු ඇත, නමුත් ටයිප් කිරීම සහ සෑම අක්ෂර 4 (හෝ 3) ටැබ් එකක් දිස්වන ආකාරයට හැසිරෙනු ඇත.

    සටහන: 8 ට වඩා වෙනත් ඕනෑම අගයකට 'ටැබ්ස්ටොප්' සැකසීම මඟින් ඔබේ ගොනුව බොහෝ ස්ථානවල වැරදි ලෙස පෙනෙනු ඇත (උදා: එය මුද්‍රණය කරන විට).

  2. ඔබ කැමති ඕනෑම දෙයකට 'ටැබ්ස්ටොප්' සහ 'මාරුව පළල' සකසා 'විස්තාරණ ටැබ්' භාවිතා කරන්න. මේ ආකාරයෙන් ඔබ සැමවිටම අවකාශ ඇතුල් කරනු ඇත. 'ටැබ්ස්ටොප්' වෙනස් කළ විට ආකෘතිකරණය කිසි විටෙකත් අවුල් නොවේ.

  3. ඔබ කැමති ඕනෑම දෙයකට 'ටැබ්ස්ටොප්' සහ 'මාරුව පළල' සකසා | මොඩලීන් | භාවිතා කරන්න ගොනුව නැවත සංස්කරණය කිරීමේදී මෙම අගයන් සැකසීමට. ගොනුව සංස්කරණය කිරීමට Vim භාවිතා කරන විට පමණක් ක්‍රියාත්මක වේ.

  4. සෑම විටම 'ටැබ්ස්ටොප්' සහ 'මාරුව පළල' එකම අගයට සකසන්න, සහ 'නොක්ස්පෑන්ඩ්ටාබ්'. මෙය පසුව මිනිසුන් භාවිතා කරන ඕනෑම ටැබ්ස්ටොප් සැකසුම සඳහා (ආරම්භක ඉන්ඩෙන්ට් සඳහා පමණි) ක්‍රියා කළ යුතුය. ඔබ මෙය කළත් පළමු හිස් නොවන අවකාශයන් ලෙස ටැබ් තිබීම සතුටක් විය හැකිය. 'ටැබ්ස්ටොප්' හුවමාරු වන විට නොබැඳි අදහස් වැරදිය.

මූලාශ්රය:


ටැබ්ස්ටොප්! = 8 සැකසීම නරක විය හැක්කේ මන්දැයි පැහැදිලි කිරීම සඳහා +1!
ඔග්‍රේ ගීතාවලිය 33

3
මෙය විශිෂ්ටයි, නමුත් මෙය vimdoc.sourceforge.net/htmldoc/options.html#'tabstop 'හෝ :help tabstopvim වෙතින් වාචික බව ඔබ සටහන් කළ යුතුය .
belacqua


8

මාර්ගය එකතු
set ts=4
දී
~/.vimrcපරිශීලකයෙකුට සඳහා ගොනු
හෝ
/etc/vimrcපද්ධතිය පුළුල් කිරීම සඳහා ගොනුව



4

මගේ මූලික ~ / .vimrc අදහස් දැක්වීම සමඟ:

set number " show line number                                                                                           
set tabstop=2 " set display width of tab; 1 tab = x space with                                                           
set expandtab " transform tab to x space (x is tabstop)                                                               
set autoindent " auto indent; new line with number of space at the beginning same as previous                                                                      
set shiftwidth=2 " number of space append to lines when type >> 

1

සියලුම පරිශීලකයින් සඳහා ස්ථිරයි (ඔබ සේවාදායකයේ තනිවම සිටින විට):

# echo "set tabstop=4" >> /etc/vim/vimrc

සාමාන්‍යයෙන් නව සේවාදායකයක apt-get purge nano mcසහ අනෙක් සියල්ල ඔබගේ කාලය ඉතිරි කර ගැනීමට. එසේ නැත්නම් ඔබ තුළ කර්තෘ නගරයන්හි ආරම්භ කිරීමට නියමිතය git, crontabආදිය


1
ඔබ සංස්කාරකය සකසන්නේ නම්, බොහෝ වැඩසටහන් එයට ගරු කරනු ඇත.
ඩී. බෙන් නොබෙල්

@ D.BenKnoble ඔබ හරි. මම උත්සාහ කළා. දැන් මම කැමතියි මගේ කාලය හා ස්නායු ඉතිරි කර ගැනීමට. සමග හරියටම දිවෙන දේ පරීක්ෂා කළ නොහැකි F10දී nano, නමුත් ඒ මා සෑම විටම (සමහර විට ඉතිරි සමග උපක්රම කිහිපයක් කරන්න F10විසඳුමක් වේ). නැත්නම් එය ක්‍රියාත්මක නොවන්නේද screen? මට මතක නැත, එයට වෛර කරන්න)
වාසිලී සුරිකොව්
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.