花样年华 的个人资料『花样年华』In the Mood For Lo...照片日志列表更多 ![]() | 帮助 |
|
11月16日 vim: Getting rid of ^M - mixing dos and unixIf you work in a mixed environment you will often open files that have ^M's in them. An example would be this:
------------------------------------------------------------------
import java.util.Hashtable; ^M import java.util.Properties; ^Mimport java.io.IOException; import org.xml.sax.AttributeList; ^M import org.xml.sax.HandlerBase; ^Mimport org.xml.sax.SAXException; /**^M
* XMLHandler: This class parses the elements contained^M * within a XML message and builds a Hashtable^M [snip]
------------------------------------------------------------------ Notice that some programs are not consistent in the way they insert the line breaks so you end up with some lines that have both a carrage return and a ^M and some lines that have a ^M and no carrage return (and so blend into one). There are two steps to clean this up.
1. replace all extraneous ^M:
:%s/^M$//g
BE SURE YOU MAKE the ^M USING "CTRL-V CTRL-M" NOT BY TYPING "CARROT M"! This expression will replace all the ^M's that have carriage returns after them with nothing. (The dollar ties the search to the end of a line)
2. replace all ^M's that need to have carriage returns:
:%s/^M/ /g Once again: BE SURE YOU MAKE the ^M USING "CTRL-V CTRL-M" NOT BY TYPING "CARROT M"! This expression will replace all the ^M's that didn't have carriage returns after them with a carriage return. 3.It also works with
:%s/\r//g 4.If you want to put a map of this in your _vimrc file, then you have to double the ^V character so that it looks like this: map M :%s/^V^V^M$//g^M note: if you cut and paste this line, it won't work. You have to type the control characters as explained above. It has something to do with it being interpreted multiple times, I think. 引用通告此日志的引用通告 URL 是: http://tonyxuli.spaces.live.com/blog/cns!C5F02EC8E7FFDA50!525.trak 引用此项的网络日志
|
|
|