Tôi đang sử dụng Syntastic được bật cho các tệp HTML của mình. Vì tôi có một tệp rất lớn với trình kiểm tra "trình xác thực w3" được bật, GVIM hoặc VIM trở nên rất chậm khi lưu tệp (: w).
Có thể tạm thời tắt tổng hợp chỉ cho phiên hiện tại không?
Tôi đang sử dụng Syntastic được bật cho các tệp HTML của mình. Vì tôi có một tệp rất lớn với trình kiểm tra "trình xác thực w3" được bật, GVIM hoặc VIM trở nên rất chậm khi lưu tệp (: w).
Có thể tạm thời tắt tổng hợp chỉ cho phiên hiện tại không?
Câu trả lời:
Sử dụng, :SyntasticToggleMode
bạn có thể chuyển Syntastic sang chế độ thụ động, điều này sẽ tắt tính năng tự động kiểm tra. Sau đó, bạn có thể kiểm tra tệp bằng cách chạy :SyntasticCheck
thay thế.
Để biết thêm, hãy xem :help syntastic-commands
Một lưu ý khác: nếu Syntastic chậm, bạn nên xem xét thử ale như một giải pháp thay thế. Không giống như Syntastic, nó chạy không đồng bộ, vì vậy ngay cả khi nó chậm, nó cũng không cản trở bạn.
:error
hoặc Ctrl + Shift / Alt + e chuyển đổi giữa :SyntasticCheck
và :SyntasticToggleMode
.
:command Sd SyntasticToggleMode
Sau đó, nhấn vi: Sd và nó sẽ vô hiệu hóa tổng hợp. Thông tin thêm về cách thực hiện điều đó tại đây: stackoverflow.com/questions/3878692/aliasing-a-command-in-vim
silent! nmap <F6> :SyntasticToggleMode<CR>
Tôi đã tắt tính năng Syntastic theo mặc định và kích hoạt / tắt tính năng kiểm tra lỗi với phần sau trong .vimrc của tôi:
let g:syntastic_mode_map = { 'mode': 'passive', 'active_filetypes': [],'passive_filetypes': [] }
nnoremap <C-w>E :SyntasticCheck<CR>
Khi tôi cần sử dụng kiểm tra lỗi, tôi chỉ cần nhấn: ctrl-w E
.vimrc
. Tuy nhiên, nếu tôi nhấn Ctrl-w E Tổng hợp sẽ bật lên trong một giây và lại biến mất. Bất kỳ ý tưởng điều gì đang xảy ra và / hoặc làm thế nào để theo dõi điều này?
Thay thế cho câu trả lời của Jamie và gospes, người ta có thể tắt hoàn toàn trình kiểm tra bằng cách chỉ định trình kiểm tra như sau:
let g:syntastic_html_checkers=['']
Ngoài ra, hãy đảm bảo rằng giá trị syntastic_check_on_open
không được đặt thành 1, điều này sẽ phản đối dòng trên:
let g:syntastic_check_on_open = 0
Bạn có thể tắt Syntastic trong toàn bộ phiên (như Jamie Schembri đã trả lời ), nhưng nếu đó chỉ là sự cố với một "tệp rất lớn", bạn có thể chỉ muốn vô hiệu hóa một bộ đệm.
Một số tệp tôi đang làm trong công việc của mình không tuân thủ PSR một cách vô vọng. Hầu hết hoạt động tốt. Tôi đang tìm kiếm chức năng để tắt Syntastic chỉ cho những tệp có vấn đề đó. Một dạng đơn giản hơn của giải pháp ' SyntasticDisableToggle ' do cộng tác viên chính phác thảo phù hợp với tôi:
"disable syntastic on a per buffer basis (some work files blow it up)
function! SyntasticDisableBuffer()
let b:syntastic_skip_checks = 1
SyntasticReset
echo 'Syntastic disabled for this buffer'
endfunction
command! SyntasticDisableBuffer call SyntasticDisableBuffer()
Bởi vì điều này không ảnh hưởng đến các bộ đệm khác, tôi có thể tiếp tục sử dụng plugin tuyệt vời này cho bất kỳ tệp tuân thủ (một phần) nào khác mà tôi đang mở.
Điều này không trực tiếp giải quyết câu hỏi, nhưng có thể giúp ích cho phiên hiện tại. Nếu bạn có một tệp mà bạn phải chỉnh sửa thường xuyên nhưng bạn biết rằng bạn sẽ luôn muốn tắt Syntastic trên (ví dụ: nó có hàng nghìn lỗi và bạn không định sửa chúng và để nó dẫn đến giao diện người dùng chậm lại), thì vĩnh viễn danh sách đen nó rất thuận tiện.
Để làm điều này, hãy sử dụng syntastic_ignore_files
tùy chọn. Nó được giấu trong sự trợ giúp, nhưng bạn có thể sử dụng regexes với tính năng này để đưa các tệp vào danh sách đen.
'syntastic_ignore_files'
Default: []
Use this option to specify files that syntastic should never check. It's a
list of regular-expression patterns. The full paths of files (see ::p) are
matched against these patterns, and the matches are case sensitive. Use \c
to specify case insensitive patterns. Example:
let g:syntastic_ignore_files = ['\m^/usr/include/', '\m\c\.h$']
Các cài đặt sau đây phù hợp với tôi.
let g:syntastic_mode_map = { 'mode': 'passive', 'active_filetypes': [],'passive_filetypes': [] }
noremap <C-w>e :SyntasticCheck<CR>
noremap <C-w>f :SyntasticToggleMode<CR>
Ctrl-w + e shall enable checking
Ctrl-w + f shall disable checking
To disable warnings use:
let g:syntastic_quiet_messages={'level':'warnings'}
Một tùy chọn khác để tắt kiểm tra một bộ đệm (bất kể loại tệp) là sử dụng :let b:syntastic_mode="passive"
. Vì nó không phải là một chuyển đổi, nó sẽ hoạt động ngay cả khi bộ đệm hiện đang ở chế độ thụ động.
Nếu bạn muốn tạm thời tắt kiểm tra tất cả các loại tệp trong tất cả các bộ đệm, bạn có thể sử dụng :bufdo let b:syntastic_mode="passive"
. Tôi đã thiết lập ánh xạ để tắt / bật kiểm tra tất cả các bộ đệm:
nnoremap <leader>sN :bufdo let b:syntastic_mode="passive"<cr>
nnoremap <leader>sY :bufdo unlet b:syntastic_mode<cr>
Điều này đặc biệt hữu ích khi thực hiện :wqa
với nhiều vùng đệm mở.
Tương tự với những thứ được một số người khác đề cập, đây là đoạn vimrc sẽ tắt Syntastic theo mặc định, nhưng ánh xạ một nút (ở đây, F10) để kiểm tra tệp hiện tại và sử dụng nút tương tự như một nút chuyển đổi để tắt kiểm tra. Nó hơi chậm, nhưng hoạt động.
let g:syntastic_check_on_open = 0
let g:syntastic_check_on_wq = 0
let g:syntastic_mode_map = {'mode':'passive'}
nnoremap <F10> :SyntasticCheck<CR> :SyntasticToggleMode<CR> :w<CR>
Cảm ơn Steven Lu , bây giờ tôi có thể bỏ qua các tệp của Ansible Roles .
" ignore files of Ansible Roles.
let g:syntastic_ignore_files = ['\m^roles/']
Tôi đang sử dụng Ale và Syntastic chủ yếu vì hỗ trợ của Rust Ale vẫn chưa tốt lắm. Trong trường hợp của tôi, tôi đang sử dụng trình quản lý gói vim-plug, tôi thiết lập để nó không tự động bật bất kỳ thứ nào trong số này. Thay vào đó, tôi sử dụng chiến lược chuyển đổi.
Trong trường hợp của tôi, tôi muốn Ale theo mặc định và Syntastic cho Rust
Trong phần plugin của vimrc, tôi đã làm điều này
Plug 'w0rp/ale', { 'on': 'ALEToggle' }
Plug 'vim-syntastic/syntastic', { 'on': 'SyntasticToggleMode' }
Sau đó, tôi đặt một liên kết để bật linter, (tôi sử dụng l làm mnemoic cho linter)
nnoremap <leader>l :ALEToggle<CR>
Đối với Rust, tôi ghi đè cùng một ràng buộc
au FileType rust noremap <buffer> <leader>l :SyntasticToggleMode<CR>
Ngoài ra, tôi phải xóa nội dung dòng trạng thái khỏi vimrc của mình nếu không tôi sẽ gặp lỗi khi tải nó với tính năng Syntastic bị vô hiệu hóa
" Syntastic stuff
"set statusline+=%#warningmsg#
"set statusline+=%{SyntasticStatuslineFlag()}
"set statusline+=%*
let g:rustfmt_autosave = 1
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
" Syntastic stuff
Trân trọng
let g:syntastic_disabled_filetypes=['html']