2015-04-23 12 views
9

Tôi đang cố gắng để có được một lệnh tôi có thể chạy trong vim để có được jscs auto correct vấn đề định dạng trong mã của tôi. Cho đến nay tôi đã đi lên với:Làm cách nào để tích hợp tính năng tự động sửa jscs vào vim?

:nmap <F5> :!jscs -x .<CR>

đó là ok, nhưng nó chạy nó trên toàn bộ thư mục và tôi cần phải xác nhận để vim mà tôi muốn tải lại bộ đệm. Có cách nào để có được vim để sửa chữa các tập tin hiện tại chỉ và didsplay những thay đổi mà không cần tải lại?

Trả lời

8

này ống sẽ tập tin hiện tại thông qua chế độ sửa chữa công ty cổ phần của bất cứ khi nào bạn lưu các tập tin (mileage của bạn có thể thay đổi sử dụng này trong thực tế!):

function! JscsFix() 
    "Save current cursor position" 
    let l:winview = winsaveview() 
    "Pipe the current buffer (%) through the jscs -x command" 
    % ! jscs -x 
    "Restore cursor position - this is needed as piping the file" 
    "through jscs jumps the cursor to the top" 
    call winrestview(l:winview) 
endfunction 
command! JscsFix :call JscsFix() 

"Run the JscsFix command just before the buffer is written for *.js files" 
autocmd BufWritePre *.js JscsFix 

Nó cũng tạo ra một lệnh JscsFix mà bạn có thể chạy bất cứ khi nào bạn muốn với :JscsFix. Để liên kết nó với một khóa (trong trường hợp này là <leader>g), hãy sử dụng noremap <leader>g :JscsFix<cr>.

+0

Khi tôi thêm những dòng đó vào vimrc của tôi, đây là lần đầu tiên, và tôi có thể sử dụng jscs bằng cách nhấn F3 để khôi phục tệp của tôi. Nhưng lần sau tôi muốn nguồn vimrc của tôi một lần nữa (sử dụng: như vậy%) Tôi nhận được các lỗi này: Lỗi được phát hiện trong khi xử lý /home/omid/.vimrc: dòng 197: E174: Lệnh đã tồn tại: thêm! để thay thế nó Nhấn ENTER hoặc gõ lệnh để tiếp tục Đây là đoạn mã đầy đủ của tôi: https://jsfiddle.net/2pLoczws/ – Omid

+0

Thay đổi dòng 'lệnh JscsFix: gọi JscsFix() 'để thêm dấu chấm than sau lệnh, ví dụ: 'lệnh! JscsFix: gọi JscsFix() 'có thể làm những gì bạn muốn? – actionshrimp

+0

oh vâng, cảm ơn! – Omid

4

vim-autoformat hỗ trợ JSCS ra khỏi hộp. Gọi lệnh :Autoformat để sửa chỉ tệp hiện tại. Lưu ý nó chỉnh sửa các tập tin trong bộ đệm hiện tại, do đó, những thay đổi sẽ chỉ xuất hiện; bạn sẽ không được nhắc tải lại.

+0

Mẹo tuyệt vời! Ngoài ra chạy tự động định dạng trên lưu với 'autocmd BufWritePre * .js Autoformat'. –

Các vấn đề liên quan