🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

Q&A

解決済

1回答

1279閲覧

vim8.1を導入したらtabの挙動が.txtと.pyで違います。

退会済みユーザー

退会済みユーザー

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

0グッド

0クリップ

投稿2019/09/24 13:34

いつもお世話になっております。

vimを使用して.pyファイルを書く際、tabキーでスペース8個分のtabを入れておりました。
その後vim8.1を手動でビルドしました。その後vimrcの読み込むパスが/etc/vimrcから/usr/local/share/vim/vimrcに
変更になっていたので/etc/vimrcの設定をそのままコピーして/usr/local/share/vim/vimrcにペーストしました。

その後vimのカスタマイズはきちんと動いているのですが、tabキーの挙動が変わってしまいました。
.txtファイルでtabキーを押すとスペース8個分のtabが入力されます。これは良いのですが、
.pyファイルでtabキーを押すとスペースが4個入力されます。再度tabキーを押しても続けてスペースが4個入力されるだけです。

vimrcは下記のとおりです。

if v:lang =~ "utf8$" || v:lang =~ "UTF-8$" set fileencodings=ucs-bom,utf-8,latin1 endif set nocompatible " Use Vim defaults (much better!) set bs=indent,eol,start " allow backspacing over everything in insert mode "set ai " always set autoindenting on "set backup " keep a backup file set viminfo='20,\"50 " read/write a .viminfo file, don't store more " than 50 lines of registers set history=50 " keep 50 lines of command line history set ruler " show the cursor position all the time " Only do this part when compiled with support for autocommands if has("autocmd") augroup redhat autocmd! " In text files, always limit the width of text to 78 characters " autocmd BufRead *.txt set tw=78 " When editing a file, always jump to the last cursor position autocmd BufReadPost * \ if line("'\"") > 0 && line ("'\"") <= line("$") | \ exe "normal! g'\"" | \ endif " don't write swapfile on most commonly used directories for NFS mounts or USB sticks autocmd BufNewFile,BufReadPre /media/*,/run/media/*,/mnt/* set directory=~/tmp,/var/tmp,/tmp " start with spec file template autocmd BufNewFile *.spec 0r /usr/share/vim/vimfiles/template.spec augroup END endif if has("cscope") && filereadable("/usr/bin/cscope") set csprg=/usr/bin/cscope set csto=0 set cst set nocsverb " add any database in current directory if filereadable("cscope.out") cs add $PWD/cscope.out " else add database pointed to by environment elseif $CSCOPE_DB != "" cs add $CSCOPE_DB endif set csverb endif " Switch syntax highlighting on, when the terminal has colors " Also switch on highlighting the last used search pattern. if &t_Co > 2 || has("gui_running") syntax on set hlsearch endif filetype plugin on if &term=="xterm" set t_Co=8 set t_Sb=m set t_Sf=m endif " Don't wake up system with blinking cursor: " http://www.linuxpowertop.org/known.php let &guicursor = &guicursor . ",a:blinkon0" set tabstop=8 set softtabstop=8 set shiftwidth=8 set noexpandtab noremap se :term bash noremap sa :vert term bash noremap ss :split<Space> noremap sv :vsplit<Space> noremap sh <C-w>h noremap sj <C-w>j noremap sk <C-w>k noremap sl <C-w>l noremap sw <C-w>w noremap st :tabnew noremap sn gt noremap sp gT noremap sq :q<Enter> noremap sQ :bd imap <C-h> <Left> imap <C-j> <Down> imap <C-k> <Up> imap <C-l> <Right>

サイトを参考に下記4行を追加してみましたが、直りませんでした。

set tabstop=8 set softtabstop=8 set shiftwidth=8 set noexpandtab

なぜ.pyと.txtで挙動が違うのでしょうか。
またどのように修正すれば以前のようにtabを押した時に「スペース8つ分のtab」が入力されるでしょうか。
どなたかご教授お願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

vimは、ファイルタイプによって(スクリプトを走らせて)固有の設定をする事ができます。

PYTHON ft-python-plugin PEP8

デフォルトでは、PEP8 に従って以下のオプションが設定されている:

setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8

この動作を無効にするには、あなたのvimrcに次の変数を設定する:

let g:python_recommended_style = 0

だそうです。

投稿2019/09/24 13:49

katsuko

総合スコア3538

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/09/24 15:17

ありがとうございます! これで何とか開発が再開できそうです! PEP8など初めて聞きました。 環境系はいろいろ難しいことが多いですが調べてみたいと思います! ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問