Avoiding jagged text when pasting into vi?
Although I have no problem using SecureCRT (5.1.2 build 274) to work from Windows and connect to PC's running Linux, I have a problem when connecting to an embedded Asterisk appliance that provides"vi" through BusyBox 1.4.1 (2008-03-10).
The issue I'm having, is that when I paste code into vi, the text appears jagged like this:
<?php 开发者_开发技巧
try {
$dbh = new PDO("sqlite:./db.sqlite");
$dbh->exec("CREATE TABLE IF NOT EXISTS customer (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(255))");
Does someone what the problem is? Is there a way to reconfigure either BusyBox or SecureCRT so that I can paste successfully?
Thank you.
This is vi's auto-indent conflicting with the existing indentation. Activate paste mode before pasting.
<ESC>:set paste
NB: I usually use vim. It is possible that the feature doesn't exist in vi.
I'd guess you have smartindent
or autoindent
turned on. I used to do set si!
and set ai!
, but David Dorward's answer seems to have the same effect. (I'll have to remember that one. :) )
I think set ai
is the only one in vanilla vi
. If you want to force it to turn off, do set noai
(set ai!
just flips the state.)
精彩评论