Каждый раз, когда я хочу добавить комментарий к строке с отступом в энергии, я совершил нападки, Shift-o (откройте новую строку выше тока, переключитесь на режим вставки), и начните вводить комментарий Python (использование #
). Тот хеш затем волшебно перемещен в запуск строки (никакое добавление отступа), и я должен нажать вкладку несколько раз.
Кто-либо знает, как работать вокруг этого?
Я полагаю, у вас есть Smartindent
в вашем .vimrc
см. : H SmartIndent
When typing '#' as the first character in a new line, the indent for
that line is removed, the '#' is put in the first column. The indent
is restored for the next line. If you don't want this, use this
mapping: ":inoremap # X^H#", where ^H is entered with CTRL-V CTRL-H.
When using the ">>" command, lines starting with '#' are not shifted
right.
Я считаю, что вам не нужно Smartindenting во время кодирования Python. Поэтому просто удалите его из ваших настроек или добавьте следующее в свой .vimrc:
au! FileType python setl nosmartindent
Попробуйте поместить это в вашем .VIMRC:
autocmd BufRead *.py inoremap # X<c-h>#
Это сделает, что вставка знака HASH (фунта) всегда отступается в исходных файлах Python.
Вы можете использовать крюк мыши низкого уровня. См. IS Пример и проверьте MESAGE WM_MOUSEMOVE в HoodCallback.
Вы также можете использовать класс IMESSAGEFILTER, чтобы поймать события мыши и вызвать событие, чтобы получить позицию (Примечание: это только получит позицию над окном, не снаружи этого):
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace GlobalMouseEvents
{
public partial class Form1 : Form
{
public Form1()
{
GlobalMouseHandler gmh = new GlobalMouseHandler();
gmh.TheMouseMoved += new MouseMovedEvent(gmh_TheMouseMoved);
Application.AddMessageFilter(gmh);
InitializeComponent();
}
void gmh_TheMouseMoved()
{
Point cur_pos = System.Windows.Forms.Cursor.Position;
System.Console.WriteLine(cur_pos);
}
}
public delegate void MouseMovedEvent();
public class GlobalMouseHandler : IMessageFilter
{
private const int WM_MOUSEMOVE = 0x0200;
public event MouseMovedEvent TheMouseMoved;
#region IMessageFilter Members
public bool PreFilterMessage(ref Message m)
{
if (m.Msg == WM_MOUSEMOVE)
{
if (TheMouseMoved != null)
{
TheMouseMoved();
}
}
// Always allow message to continue to the next filter control
return false;
}
#endregion
}
}
-121--2387567- Вы можете попробовать NERD-комментатор , который является плагином, который позволяет добавлять комментарии к строкам на большинстве языков автоматически. Вы просто размещаете курсор в строку, которую вы заинтересованы и введите , C пространство и линия будет прокомментирована. Этими же клавишами удалят комментарий, чтобы показать линию.
Так что, если у вас есть:
def func():
print("indented") <- cursor position in command mode
тип , C пространство И вы получаете:
def func():
#print("indented")