jim19 发表于 2023-7-17 12:01

关于vim写delphi

用过vim写代码之后就回不去了, 感觉碰鼠标很麻烦, vim下对delphi没有好的代码格式化工具, 一直用的delforex没有exe的程序, 都是dll插件, vim无法直接使用, 前阵子发现这东西是开源的, 因此直接拿过来改成exe顺利在vim上部署.希望对仅剩的一些delphi用户有点帮助.
vim的快捷键映射, 还是沿用习惯的ctrl+d


map <F9> <ESC>:!dcc32 %<CR>
map <F10> <ESC>:!delforexp %<CR>
map <C-D> <ESC>:!delforexp %<CR>





procedure TPascalParser.Config(DoRead: Boolean);
{$IFDEF ver100}
type
Cardinal = Integer;
{$ENDIF}
const
Sign: Cardinal = $623DFE51;
var
Signature: Cardinal;
Err, Size: Integer;
Cfg: file;
S: array of AnsiChar;
begin
if CfgFile = '' then
    CfgFile := 'DelForExp.cfg';
CfgFile := ChangeFileExt(CfgFile, '.cfg');
if DoRead then
begin
    if not FileExists(CfgFile) then
      CapFileName := nil
    else
    begin
      if FillNewWords in then
      SaveCapFile(CapFileName);
      AssignFile(Cfg, CfgFile);
      try
      Reset(Cfg, 1);
      BlockRead(Cfg, Signature, SizeOf(Signature), Err);
      if (Err = SizeOf(Signature)) and (Signature = Sign) then
      begin
          BlockRead(Cfg, FSettings, SizeOf(Settings), Err);
          BlockRead(Cfg, Size, SizeOf(Integer));
          if Size > 0 then
          begin
            BlockRead(Cfg, S, Size);
            CapFileName := S;
          end
          else
            CapFileName := nil;
          ShortCut := Settings.ShortCut;
      end;
      finally
      CloseFile(Cfg);
      end;
    end;
end
else
begin
    AssignFile(Cfg, CfgFile);
    try
      Rewrite(Cfg, 1);
      Signature := Sign;
      BlockWrite(Cfg, Signature, SizeOf(Signature));
      BlockWrite(Cfg, Settings, SizeOf(Settings));
      if CapFileName = nil then
      begin
      Size := 0;
      BlockWrite(Cfg, Size, SizeOf(Integer));
      end
      else
      begin
      Size := StrLen(CapFileName) + 1;
      BlockWrite(Cfg, Size, SizeOf(Integer));
      StrCopy(S, CapFileName);
      BlockWrite(Cfg, S, Size);
      end;
    finally
      CloseFile(Cfg);
    end;
end;
end;

dong555 发表于 2023-7-17 18:04

jim19 发表于 2023-7-17 17:58
应该不至于把. 我的项目最大的谢了60万行了, 不过我用的delphi7

单个pas文件行数超过1万就卡 往下拉 删东西就卡 估计delphi要定位函数变量位置占系统资源卡,我现在是用文本编辑器改这些行数大于1万的pas文件

fkcp 发表于 2023-7-17 12:21

用delphi的人少了,多谢!

JuncoJet 发表于 2023-7-17 12:44

实测,gVim能支持格式化pas
ggVG=

jim19 发表于 2023-7-17 12:52

本帖最后由 jim19 于 2023-7-17 12:53 编辑

JuncoJet 发表于 2023-7-17 12:44
实测,gVim能支持格式化pas
这个格式化会错位的

xiaokl520 发表于 2023-7-17 14:57

用delphi的人少了,多谢!

kenxy 发表于 2023-7-17 15:21

怎么用vim来设计UI界面呢,可以直接拖放吗?

dong555 发表于 2023-7-17 17:56

试下拿来改传奇的代码会不会卡顿,用delphi xe10写代码 行数超过1万的卡的要死

jim19 发表于 2023-7-17 17:58

kenxy 发表于 2023-7-17 15:21
怎么用vim来设计UI界面呢,可以直接拖放吗?

界面无能为力, 还是需要用delphi来做, 或者就代码里动态创建.

jim19 发表于 2023-7-17 17:58

dong555 发表于 2023-7-17 17:56
试下拿来改传奇的代码会不会卡顿,用delphi xe10写代码 行数超过1万的卡的要死

应该不至于把. 我的项目最大的谢了60万行了, 不过我用的delphi7
页: [1] 2
查看完整版本: 关于vim写delphi