Vim предоставляет очень полезные команды движения для перехода к следующему начало/конец метода:] m,] M, [m и] m.
Это работает для Java или подобного структурированного языка. (как описано в: help] m и: help 29.3)
Кажется, что это работает, рассматривая самую внешнюю пару фигурных скобок как класс объявление и следующий уровень фигурных скобок как объявления методов.
Эти команды движения не работают, когда есть внешняя пара фигурных скобок определение класса, которое несколько распространено на языках как С#.
Мне было интересно, есть ли какой-то трюк, чтобы сделать эти команды (в одиночку и с префиксом операторов, например, y [m, V] M) работают над этим кодом:
namespace ABC.DEF
{
class A
{
protected string strID;
public string PortID { get { return strID; } set { strID = value; } }
protected MyType x;
public MyType X
{
get { return x; }
set { x = value; if ( x != null ) func1(); }
}
int func1()
{
return 1;
}
int func2(int flag)
{
if (flag == 0)
return flag;
if (flag > 3)
{
return flag;
}
return 2;
}
int func3()
{
return 3;
}
}
}