2009-11-05 63 views
6

Tôi muốn chạy lệnh như thế này:thoát trong lệnh vim

vim -c "%g/blablabla/norm /str<ESC>cwSTR" file 

Làm thế nào tôi viết thoát khỏi nhân vật trong lệnh?

Trả lời

12

Khi bạn nhập lệnh, sử dụng control-v sau đó thoát để thoát.

Tuy nhiên, tôi phải đặt câu hỏi liệu vim có phải là công cụ thích hợp cho công việc này hay không. Thông thường, bạn sẽ tốt hơn với một cái gì đó giống như sed. Điều đó nói rằng, tôi không hoàn toàn rõ ràng những gì lệnh vim là đến, vì vậy có lẽ bạn cần nó.

+0

Thực ra điều tôi muốn làm là thay thế đối số cuối cùng của một số chức năng. Vì vậy, tôi sử dụng cơ sở vim để điều hướng trong mã. Lệnh thực tế là: -c "% g/fun_name // func_name w% bcwREPLACE_TEXT". Lời gọi hàm tìm kiếm này, đi đến kết thúc), lùi lại 1 từ và thay thế đối số cuối cùng. – dimba

+0

Ok nó hoạt động. Tôi đã không biết nó hoạt động trong bash quá, tôi nghĩ rằng nó hoạt động chỉ trong vim. – dimba

+0

@idimba: Tôi thấy lý do tại sao bạn đang sử dụng vim cho công việc - nó có thể có ý nghĩa hơn so với hầu hết các công cụ khác cho những gì bạn đang làm. –

0

Đây là những gì tôi sẽ làm:

vim -s -c ':exec "normal %g/blablabla/norm /str\<Esc>cwSTR"' file 

Chú ý rằng tôi đang sử dụng: exec để mở rộng "\" để thực. Lợi thế? nó là kịch bản thân thiện hơn. Tuy nhiên, tôi không chắc chắn lệnh này đang làm gì, bạn có đang sử dụng một số bản đồ tùy chỉnh của mình ở đây không?

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