吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1122|回复: 12
收起左侧

[其他原创] 关于vim写delphi

[复制链接]
jim19 发表于 2023-7-17 12:01
用过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>


111.gif

delforexp.rar (215.91 KB, 下载次数: 7)

[Delphi] 纯文本查看 复制代码
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[0..260] 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 [fmAddNewWord, fmAddUse, fmAddUseExcept] 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;

免费评分

参与人数 2吾爱币 +8 热心值 +2 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
wgz001 + 1 + 1 居然还在用delphi

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

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
JuncoJet 发表于 2023-7-17 12:44
实测,gVim能支持格式化pas
[Asm] 纯文本查看 复制代码
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
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 21:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表