On 11/16, Tony Mechelynck wrote:
On Windows, when you read a file in Vim and every (or almost every)
line ends with ^M, it usually means that the last line lacks an
end-of-line, which made Vim read the whole file as if it were a Unix
file. This is how I would fix such a file:

   :new ++ff=dos filename.ext
   :wq

(this has the side-effect of opening then closing a new window for
that file) — see ":help ++opt".
Reading the file with 'fileformat' explicitly set to dos forces both
CR+LF or LF alone (or nothing at end of file) to be recognised as
ends-of-lines. Writing the file (which still has 'fileformat' set to
dos) writes a proper CR+LF Dos/Windows end-of-line at the end of every
line including the last one, so the next time you read it it will be
recognised as a Windows file and you won't see those pesky ^M (i.e.
carriage-return) characters (they are still there but they are part of
the normal Dos/Window end-of-line).

Or if you want to transmit the file to be read on a Unix system, you
can replace :wq by :wq ++ff=unix — in that case all lines will get a
proper LF-only Unix end-of-line, which both Vim (on any platform) and
any Unix program will be able to recognise properly. In this case the
^M characters are not even there so no one will see them.


Thanks Tony for your reply, but I am afraid I did not properly explain myself earlier, apologies.

The actual problem I dealing with is trailing ^M when reading from the OS clipboard; I started with dumping trailing \r\n data on a file only to make it easier for people to reproduce my problem, but ultimately I need to figure out how to read from the clipboard without having ^M added at the end of each line.

So, going back to my experiments, can anyone suggest why, the following strips trailing ^M:

 :read! powershell.exe Get-Clipboard

While this one instead, doesn't?

 :let @@ = system('powershell.exe Get-Clipboard') | exe 'normal p'

Also, for those who might wonder: reading from the */+ registers unfortunately is not an option, as I am trying build a mini-plugin around "cb" (https://github.com/iamFIREcracker/cb) which is a script that can work via ssh too where you don't have access to the OS clipboard; anyway, this is the reason why I am trying to read the content of the OS clipboard by using a command, `powershell.exe Get-Clipboard`, instead of using the */+ register.

Let me know if this makes things a little more clear.

Thanks.

--
Matteo Landi
https://matteolandi.net

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_use/20191116180552.GA13099%40hairstyle.local.

Reply via email to