Vim 怎麼方便的修改變數名?
01-15
直接用字元串替換的方法有可能把包含原變數名的變數誤傷到了
比如把 foo 替換為 bar,那 foobar 這個變數就成了 barbar,而且注釋也會被替換掉。那怎麼方便的替換變數名呢?難道還要用正則表達式?那麼一長串命令再加上正則表達式實在不是讓人開心的選擇…====================
我猜想題主的意思應該是問 Vim 有沒有像 Sublime Text 官網裡演示的那個功能,即變數名的同步修改。比如說在一個函數當中有一個參數名叫length,我在函數的第一行把length後面的nth去掉,那整個函數里出現的length變數都會同步變成len. 這個用 Vim 可以實現嗎?
代碼重構請用 IDE 。
不用IDE的話,
代碼很多,可以考慮sed, awk。
代碼不多的話,可用vim插件:ctrlfsvim-multiple-cursors那不然發明正則表達式幹嘛- =
好吧,感覺vim的正則表達式某些地方怪怪的
替換的時候加上gc就有確認提示了哎%s/xx/yy/gc
正則替換時加上C確認下是否替換!
zecy說的對,refactor必須要用IDE。
之前一個cocos2dx的代碼,庫從2.x版本升級到3.0,需要修改一堆東西。
我作了個死,打算徒手vim改。好吧,到現在那份demo都沒正常跑起來過。(那個時候還太年輕,不會git簡單的匹配下就可以了
:%s/&
問題問的不太清楚,是修改一個函數中的變數名,還是一個文件中的變數名,或是若干文件中的變數(或函數)名?以修改一個文件中的變數為例,我通常用的方法:
- 移到到變數名稱上,然後按下命令 *,該命令會查找游標下單詞
- 用以下命令在整個文件中替換: :%s//new_name/g
推薦閱讀:
※vim 用YCM 插件怎樣自動補全庫里的函數名和類名?
※對於非編程的文本編輯,Emacs和Vim各有什麼優勢?
※vim和exvim的區別?
※如何用 Vim 重構代碼?
※Mac OS X Lion 下 Vi 怎麼回到行首/行尾以及 page up/page down 呢?