Я делаю это:
(defun move-line-up ()
"Removes leading spaces from the current line, and then moves
the current line to the end of the previous line."
(interactive)
(let (start end)
(save-excursion
(beginning-of-line)
; get first non-space character, only look on this line
(let ((search-end (save-excursion (end-of-line) (point))))
(re-search-forward "[^[:space:]]" search-end))
(setq end (1- (point)))
(previous-line)
(end-of-line)
(setq start (point))
(delete-region start end))
(goto-char start)))
(defun move-next-line-up ()
"Moves the next line to the end of the current line"
(interactive)
(next-line)
(move-line-up))
И связывают их как:
(global-set-key (kbd "C-x ,") 'move-line-up)
(global-set-key (kbd "C-x .") 'move-next-line-up)
Так для решения проблемы, на строке, которая говорит "второй)", просто выполнение C-x , C-x ,
ILDASM is your friend. But Reflector is a soulmate
Edit: Now that Reflector is no longer a free tool, a newer tool ILSpy is under development.
RedGate имеет хороший инструмент, и он был бесплатным: .NET Reflector
Или вы можете использовать ILDAsm от MS (также бесплатно)
With Reflector check the file disassembler plugin too if you want to extract source.