पायथन फ़ाइलों को संपादित करने के लिए मैं विम ऑटोइंडेंटेशन को ठीक से कैसे सेट करूँ?


83

मुझे पायथन फ़ाइलों (* .py) के संपादन के लिए विम (7.1.xxx) स्थापित करने में परेशानी हो रही है। इंडेंटिंग टूटी हुई लगती है (इष्टतम 4 रिक्त स्थान)। मैंने कुछ ट्यूटोरियल्स का अनुसरण किया है जो मुझे Google के माध्यम से मिले। फिर भी कोई असर नहीं: / कृपया मदद करें।


2
आपकी समस्या क्या है? कैसे इंडेंटिंग टूटा है?
सीएसचोल

1
आप किस मंच का उपयोग कर रहे हैं? विंडोज / मैक / लिनक्स?
जेमी

जवाबों:


75

मैं अपनी मैकबुक पर इसका उपयोग करता हूं:

" configure expanding of tabs for various file types
au BufRead,BufNewFile *.py set expandtab
au BufRead,BufNewFile *.c set expandtab
au BufRead,BufNewFile *.h set expandtab
au BufRead,BufNewFile Makefile* set noexpandtab

" --------------------------------------------------------------------------------
" configure editor with tabs and nice stuff...
" --------------------------------------------------------------------------------
set expandtab           " enter spaces when tab is pressed
set textwidth=120       " break lines when line length increases
set tabstop=4           " use 4 spaces to represent tab
set softtabstop=4
set shiftwidth=4        " number of spaces to use for auto indent
set autoindent          " copy indent from current line when starting a new line

" make backspaces more powerfull
set backspace=indent,eol,start

set ruler                           " show line and column number
syntax on               " syntax highlighting
set showcmd             " show (partial) command in status line

(केवल इंडेंट / टैब से संबंधित सामान दिखाने के लिए संपादित)


1
C- शैली भाषाओं का संपादन करते समय टैब का उपयोग न करें। s / noexpandtab / Expandtab
badeip

@AlexKreimer आप शायद सही हैं - मैंने यह 2008 में लिखा था - यह बहुत समय पहले है। मैं इसे अपडेट करना पसंद करूंगा, लेकिन मैं ज्यादातर सामान के लिए विम का उपयोग करने से आगे बढ़ गया हूं। जब आप एक बेहतर समाधान का पता लगाते हैं, तो यहां वापस आना सुनिश्चित करें और एक बेहतर उत्तर के लिए एक लिंक पोस्ट करें (या खुद लिखें)!
डैरन थॉमस

@DarenThomas IMO, एक बहुत पुराना उत्तर
एलेक्स क्रेमर

15

मैं उपयोग करता हूं:

$ cat ~/.vimrc
syntax on
set showmatch
set ts=4
set sts=4
set sw=4
set autoindent
set smartindent
set smarttab
set expandtab
set number

लेकिन मैं डैरन की प्रविष्टियों की कोशिश करने जा रहा हूं


2
ध्यान दें कि smartindentकेवल C फ़ाइलों को संपादित करने के लिए उपयुक्त है, पायथन फ़ाइलों (और वैसे भी अब तक नहीं निकाला गया है; देखें stackoverflow.com/a/234578/37639 )।
corwin.amber

12

एक सरल विकल्प: / etc / vim / vimrc फ़ाइल में कॉन्फ़िगरेशन (जो मूल रूप से टिप्पणी की गई है) के निम्नलिखित भाग को अनसुना करें:

    if has("autocmd")
      filetype plugin indent on
    endif


3

सुनिश्चित करें कि आप VIM के लिए सही कॉन्फ़िगरेशन फ़ाइल संपादित कर रहे हैं। खासकर यदि आप विंडोज़ का उपयोग कर रहे हैं, जहाँ फ़ाइल को अन्य प्लेटफार्मों पर .vimrc के बजाय _vimrc नाम दिया जा सकता है।

विम प्रकार में

:help vimrc

और _vimrc / .vimrc फ़ाइल के साथ अपना पथ जांचें

:echo $HOME

:echo $VIM

सुनिश्चित करें कि आप केवल एक फ़ाइल का उपयोग कर रहे हैं। यदि आप अपने कॉन्फ़िगरेशन को छोटे विखंडू में विभाजित करना चाहते हैं तो आप अपनी _vimrc फ़ाइल के अंदर से अन्य फ़ाइलों को स्रोत बना सकते हैं।

:help source


1

डैरन और थानोस द्वारा प्रस्तावित समाधानों को मिलाकर हमारे पास एक अच्छी .vimrc फाइल है।

-----
" configure expanding of tabs for various file types
au BufRead,BufNewFile *.py set expandtab
au BufRead,BufNewFile *.c set noexpandtab
au BufRead,BufNewFile *.h set noexpandtab
au BufRead,BufNewFile Makefile* set noexpandtab

" --------------------------------------------------------------------------------
" configure editor with tabs and nice stuff...
" --------------------------------------------------------------------------------
set expandtab           " enter spaces when tab is pressed
set textwidth=120       " break lines when line length increases
set tabstop=4           " use 4 spaces to represent tab
set softtabstop=4
set shiftwidth=4        " number of spaces to use for auto indent
set autoindent          " copy indent from current line when starting a new line
set smartindent
set smarttab
set expandtab
set number

" make backspaces more powerfull
set backspace=indent,eol,start

set ruler                           " show line and column number
syntax on               " syntax highlighting
set showcmd             " show (partial) command in status line


0

अधिक उन्नत अजगर संपादन के लिए सिंपलफोल्ड विम प्लगइन को स्थापित करने पर विचार करें । यह आपको नियमित अभिव्यक्ति का उपयोग करके उन्नत कोड तह करने की अनुमति देता है। मैं तेजी से संपादन के लिए मेरी कक्षा और विधि परिभाषाओं को मोड़ने के लिए इसका उपयोग करता हूं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.