diff --git a/cmd/micro/actions.go b/cmd/micro/actions.go index b1c18d60..3f070f72 100644 --- a/cmd/micro/actions.go +++ b/cmd/micro/actions.go @@ -921,11 +921,14 @@ func (v *View) Paste(usePlugin bool) bool { return false } + leadingWS := GetLeadingWhitespace(v.Buf.Line(v.Cursor.Y)) + if v.Cursor.HasSelection() { v.Cursor.DeleteSelection() v.Cursor.ResetSelection() } clip, _ := clipboard.ReadAll() + clip = strings.Replace(clip, "\n", "\n"+leadingWS, -1) v.Buf.Insert(v.Cursor.Loc, clip) v.Cursor.Loc = v.Cursor.Loc.Move(Count(clip), v.Buf) v.freshClip = false diff --git a/cmd/micro/view.go b/cmd/micro/view.go index dd29fcff..375f0259 100644 --- a/cmd/micro/view.go +++ b/cmd/micro/view.go @@ -337,14 +337,7 @@ func (v *View) HandleEvent(event tcell.Event) { } } case *tcell.EventPaste: - if v.Cursor.HasSelection() { - v.Cursor.DeleteSelection() - v.Cursor.ResetSelection() - } - clip := e.Text() - v.Buf.Insert(v.Cursor.Loc, clip) - v.Cursor.Loc = v.Cursor.Loc.Move(Count(clip), v.Buf) - v.freshClip = false + relocate = v.Paste(true) case *tcell.EventMouse: x, y := e.Position() x -= v.lineNumOffset - v.leftCol + v.x