Vim theo Win 7 thay đổi thiết lập shiftwidth của tôi để một cái gì đó tôi không muốn chỉ file .sml.thay đổi Vim shiftwidth cho các tập tin .sml
Những gì tôi muốn là tất cả mọi thứ để được thụt vào với không gian duy nhất, và cho tất cả mọi thứ để có 4 chỗ luôn. Đây là nội dung của file _vimrc hiện tại của tôi, mặc dù tôi đã thử nhiều biến thể:
set nocompatible
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
set guifont=Consolas:h9:cANSI
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
filetype plugin indent on
" Set the tab width
let s:tabwidth=4
exec 'set tabstop=' .s:tabwidth
exec 'set shiftwidth=' .s:tabwidth
exec 'set softtabstop='.s:tabwidth
Khi tôi lần đầu tiên bắt đầu Vim với không có tập tin nạp, :set shiftwidth
lợi nhuận shiftwidth=4
. Khi tôi mở tệp .py hoặc .php, tệp vẫn trả về shiftwidth=4
. Nhưng khi tôi mở tệp .sml hoặc chỉ lưu tệp trống có đuôi .sml, nó sẽ thay đổi thành shiftwidth=2
. Cài đặt thủ công :set shiftwidth=2
hoạt động cho phiên đó, nhưng tôi phải thực hiện nó mỗi khi tôi mở tệp .sml.
Nó chỉ ảnh hưởng đến bộ đệm với một tập tin .sml mở. Các bộ đệm chưa được lưu hoặc các bộ đệm có loại tệp khác mở cùng lúc hiển thị shiftwidth = 4.
tôi đã không sử dụng filetype cắm điều thụt trước đó, nhưng sau khi một số tìm kiếm dường như có thể là vấn đề. Không có tập tin trong thư mục ftplugin tôi, vì vậy tôi đã thêm filetype plugin indent on
để _vimrc, tạo sml.vim của tôi và đặt nó trong thư mục ftplugin (một lần nữa, sau khi thử nhiều biến thể:
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
" Set the tab width
let s:tabwidth=4
exec 'set tabstop=' .s:tabwidth
exec 'set shiftwidth=' .s:tabwidth
exec 'set softtabstop='.s:tabwidth
Tôi biết sml.vim đang được đọc vì tôi đặt sai sót trong nó lúc đầu, và họ đã bị bắt.
Không chắc nếu điều này là có liên quan, nhưng không có gì về .sml trong indent.vim của tôi, và thư mục thụt lề của tôi là trống rỗng.
Tuy nhiên, Vim vẫn đặt shiftwidth = 2 mỗi lần tôi tải một tệp .sml. Tôi muốn biết lý do.
Cập nhật: Thư mục thụt lề mà tôi đã nói trống rỗng là vim \ vimfiles \ indent. Sau khi trả lời và bình luận bên dưới, tôi tìm kiếm sml.vim và tìm thấy một thư mục thụt lề khác, vim \ vim73 \ indent. Tôi đã chỉnh sửa sml.vim và thay đổi shiftwidth = 2 thành shiftwidth = 4 và vấn đề đã được giải quyết.
tải một tập tin .sml và chạy ': động từ thiết sw' - Nó sẽ cho bạn biết nơi nó lần cuối bộ. – sidyll