Pages

Monday, 24 June 2024

Cmder,简单来说是个多标签的命令行工具


它可以当做windows自带的cmd的增强版

优势

    支持多标签
    支持全屏显示
    可以方便的对命令行窗口的属性进行设置,比如字体,编码,颜色,背景等,自定义化程度很高
    可以方便的拷贝大量输出数据,比如调试日志
    由于集成了conemu-maximus5和 git-for-windows,所以附带 ls,grep等linux常见的小工具
    可以自己识别系统已经安装的各种命令行环境,比如msys2,vs的命令行环境,cygwin,win10的wsl等。

小贴士

    cmder中的命令提示符是类似“人”这种,如何修改成"$"
    最新版本需要修改 clink.lua 文件,找到下面的位置
    local lambda = "λ"
    把这个符号改成熟悉的美元符号或者其他你喜欢的符号即可。
    cmder有时候输入的首个字母无法回车删除
    参照1,把 "λ" 改成 "$" 美元符号即可。
    整合msys2:
    添加msys2配置即可。

下载地址:
https://github.com/cmderdev/cmder/releases

https://github.com/cmderdev/cmder/releases/download/v1.3.25/cmder.zip

------

Cmder

Lovely console emulator package for Windows

cmder.app

Join the chat at https://gitter.im/cmderdev/cmder Build Status Build Status

Cmder is a software package created out of pure frustration over absence of usable console emulator on Windows. It is based on ConEmu with major config overhaul, comes with a Monokai color scheme, amazing clink (further enhanced by clink-completions) and a custom prompt layout.

Cmder Screenshot

Why use it

The main advantage of Cmder is portability. It is designed to be totally self-contained with no external dependencies, which makes it great for USB Sticks or cloud storage. So you can carry your console, aliases and binaries (like wget, curl and git) with you anywhere.

The Cmder's user interface is also designed to be more eye pleasing, and you can compare the main differences between Cmder and ConEmu here.

Installation

Single User Portable Config

  1. Download the latest release
  2. Extract the archive. Note: This path should not be C:\Program Files or anywhere else that would require Administrator access for modifying configuration files
  3. (optional) Place your own executable files into the %cmder_root%\bin folder to be injected into your PATH.
  4. Run Cmder.exe

Shared Cmder install with Non-Portable Individual User Config

  • Download the latest release
  • Extract the archive to a shared location.
  • (optional) Place your own executable files and custom app folders into the %cmder_root%\bin. See: bin/README.md
    • This folder to be injected into your PATH by default.
    • See /max_depth [1-5] in 'Command Line Arguments for init.bat' table to add subdirectories recursively.
  • (optional) Place your own custom app folders into the %cmder_root%\opt. See: opt/README.md
    • This folder will NOT be injected into your PATH so you have total control of what gets added.
  • Run Cmder.exe with /C command line argument. Example: cmder.exe /C %userprofile%\cmder_config
    • This will create the following directory structure if it is missing.

      c:\users\[username]\cmder_config
      ├───bin
      ├───config
      │   └───profile.d
      └───opt
      
    • (optional) Place your own executable files and custom app folders into %userprofile%\cmder_config\bin.
      • This folder to be injected into your PATH by default.
      • See /max_depth [1-5] in 'Command Line Arguments for init.bat' table to add subdirectories recursively.
    • (optional) Place your own custom app folders into the %user_profile%\cmder_config\opt.
      • This folder will NOT be injected into your PATH so you have total control of what gets added.
    • Both the shared install and the individual user config locations can contain a full set of init and profile.d scripts enabling shared config with user overrides. 

    from https://github.com/cmderdev/cmder 

    ( Win下必备神器之Cmder

    安裝 cmder

    Cmder官网http://cmder.net/(她把conemu,msysgit和clink打包在一起,让你无需配置就能使用一个真正干净的Linux终端!她甚至还附带了漂亮的monokai配色主题。);作为一个压缩档的存在, 可即压即用。你甚至可以放到USB就可以虽时带着走,连调整过的设定都会放在这个目录下,不会用到系统机码(Registry),所以也很适合放在Dropbox / Google Drive / OneDrive共享于多台电脑。

    下载的时候,有两个版本,分别是mini与full版;唯一的差别在于有没有内建msysgit工具,这是Git for Windows的标准配备;全安装版

     cmder 自带了 msysgit, 压缩包 23M, 除了 git 本身这个命令之外, 里面可以使用大量的 linux 命令;比如 grep, curl(没有 wget); 像vim, grep, tar, unzip, ssh, ls, bash, perl 对于爱折腾的Coder更是痛点需求

    cmder强大自带命令

    因为她是即压即用的存在,所以点击Cmder.exe即可运行。很显然这般打开她,不怎么快捷,即便用Listary高效搜索到她,然后点击;我们可以这样做:

        把 cmder 加到环境变量
    可以把Cmder.exe存放的目录添加到系统环境变量;加完之后,Win+r一下输入cmder,即可。

         添加cmder到右键菜单
        在某个文件夹中打开终端, 这个是一个(超级)痛点需求, 实际上上一步的把 cmder 加到环境变量就是为此服务的, 在管理员权限的终端输入以下语句即可:
        Cmder.exe /REGISTER ALL

    打开一个管理员权限终端:
    输入 Ctrl + t, 或者点击下面控制条的绿色加号, 勾选 Run as administrator
    Run as administratorRun as administrator
    这就打开了一个管理员权限的终端, 在里面输入上述语句,就可在每个文件夹右键菜单中点击 Cmder here唤起Cmder,方便快捷。

    默认开启设置
    作为强大的存在,必然支持私人定制。输入win + alt + p或者 在底部右击点击 settings, 进入设置页面;可以根据自己的所需进行各种配置(字体,皮肤等等等等)。
    目前游走在前端,Gulp已离不开,Cmder+PowerShell这个组合无疑是运行gulp的利器。如下图所示,可以设置PowerShell作为默认开启的选项;也可以更改默认开启是所在目录。

     Cmder-Setting
    解决文字重叠问题:
    Win + ALT + P 唤出设置界面 > mian > font > monospce,去掉那勾勾即可。

    修改命令提示符号·λ·
    Cmder预设的命列列提示符号是λ;如果用着不习惯,可以将这个字元改成Mac / Linux环境下常见的$符号,具体操作如下:
     Cmder安装目录下的vendor\init.bat批处理文件(min版本15行),把:
    @prompt $E[1;32;40m$P$S{git}{hg}$S$_$E[1;30;40m {lamb} $S$E[0m

    修改成以下即可:
    @prompt $E[1;32;40m$P$S{git}{hg}$S$_$E[1;30;40m $$ $S$E[0m

    这个亲测在cmder.exe可以,但在PowerShell.exe需要另行设置:
    打开文件config/
     cmder.lua(prompt.lua也有版本是这个),将第二行中的λ修改为Linux下常用的$即可;亲测可行(2016-01-13)。

    常用功能介绍
     cmder 功能极为强大,功能也非常多,但从视窗画面上看不太出其强大实力,这里就先说下其「看的见」的功能:

     Cmder常用快捷键
    跟一般浏览器页签操作习惯一致:

        可以利用Tab,自动路径补全(爽,赞!);
        可以利用Ctrl+T建立新页签;
        利用Ctrl+W关闭页签;
        还可以透过Ctrl+Tab切换页签;
        Alt+F4:关闭所有页签
        Alt+Shift+1:开启

    Alt+Shift+2:开启 powershell.exe
    Alt+Shift+3:开启 powershell.exe (系统管理员权限)
    Ctrl+1:快速切换到第1个页签
    Ctrl+n:快速切换到第n个页签( n值无上限)
    Alt + enter: 切换到全屏状态;
    Ctr+r 历史命令搜索;
    End, Home, Ctrl : Traversing text with as usual on Windows

    2, 可在视窗内搜寻画面上出现过的任意关键字。
    3, 新增页签按钮,可透过滑鼠新增页签。
    4, 切换页签按钮,可透过滑鼠切换页签。
    5, 锁定视窗,让视窗无法再输入。
    6, 切换视窗是否提供卷轴功能,启动时可查询之前显示过的内容。
    7, 按下滑鼠左键可开启系统选单,滑鼠右键可开启工具选项视窗。 Win+Alt+P :开启工具选项视窗.

    cmder元件组成
     cmder其实结合了多套 软体,其中包括msysgit(https://github.com/msysgit/msysgit)与最重要的ConEmu(http://conemu.github.io/)与Clink软体(http://mridgers.github.io/clink/),而ConEmu与Clink这两套软体就是cmder真正的核心元件。

        msysgit除了提供Git for Windows 相关工具外,其实还提供了多套Unix/Linux 环境下常用的指令列工具,例如less, ls, tar, unzip, md5sum, grep, sed, … 等多套工具。
    光是一个grep 就不知道比Windows 内建的findstr 强几百倍了!

    ConEmu也可以是单独一款软件存在,曾经一度迷恋于它,然而其体验并不如
     cmder,便放弃它了。

    Clink 将GNU Readline 函式库整合进原生的Windows  命令提示字元视窗,提供命令列模式下强大的编辑与输入能力,这也是用了
    cmder 之后会这么像在Linux 环境下使用的感觉。

    上述功能,目前没怎么用,根据学以致用原理,也就还没去了解去折腾。

    其他功能

     Cmder还增加了alias功能;他让你用短短的指令执行一些常见但指令超长又难以记忆的语法;比如 ls cls等等;在其控制台输入alias可以查看。

    主控台文字自动放大缩小功能,你只要按下Ctrl+滑鼠滚轮就可以办到;果你用支援两点触控的笔电,也可以在触控板上用两指放大的手势调整文字大小。还有:up,向上翻历史命令;

     Cmder有极为简单的复制粘贴操作。Ctr+V直接粘贴;用鼠标选中你想拷贝的内容,自动就复制到剪切板;天神,这悉数的美感;点赞!

    自定义aliases:
    打开Cmder目录下的config文件夹,里面的aliases文件就是我们可以配置的别名文件,只需将里面ls命令的别名按下列方式修改就可以在ls命令下显示中文。
        ls=ls --show-control-chars --color=auto $*

    当然,别名文件还可以有许多其他配置,如:

    e.=explorer .
    gcc=cd D:\Document\gcc\
    gw=cd D:\Document\GitHub\work
    gl=git log --oneline --all --graph --decorate  $*
    ls=ls --show-control-chars --color=auto $*
    pwd=cd
    clear=cls

    这个在公司电脑上总不成功;问题无效的宏定义。;在写到这里时候,还未查明缘由【待探究,待更新】。

    —2016-01-14 20:05更新:
    感谢@V友(zongwan),可以修改Cmder目录下vendor\profile.ps1文件,Like This:

    Set-Alias st "C:\Program Files\Sublime Text 3\sublime_text.exe"
    function Git-Status { git status }
    Set-Alias gs Git-Status
    function go-Work {cd E:\work\web\cdn\}
    Set-Alias gw go-Work

    st xxx就用实现以sublimeText打开xxx文件;gw下就能进入所设置的目录;gs相当于在使用git文件目录下用git status;凡此种种,为常用命令设置下简短别名,真心不错。

     Windows的 cmd就是一个奇葩的存在…如果你愿意花时间去找,你能找到很多的可以替代它的 软件,譬如:Babun, Gow ,Conemu , clink等等,任何一款都比原生的Cmd来得快意。环境虽如是,体验却在你。

    大概就这样,折腾让生活更美好,不止于编程码字。还是那句话,与君共勉:
    “过一个平凡无趣的人生实在太容易了,你可以不读书,不冒险,不运动,不写作,不外出,不折腾……但是,人生最后悔的事情就是:我本可以。”

    参考文章:
    Cmder官网
    利用 Chocolatey 快速在 Windows 下搭建一个开发环境
    介绍好用工具:Cmder ( 具有Linux 温度的Windows 命令提示字元工具 ) )

    -------------------------------

    msys2环境的搭建


    msys2是一款跨平台编译套件,它模拟linux编译环境
    ,支持整合mingw32和mingw64,能很方便的在windows上对一些开源的linux工程进行编译/运行
    类似的跨平台编译套件有:msys,cygwin,mingw

    优势

        相对于 cygwin 和 msys 等环境,它支持 pacman 包管理器,这意味着你可以很方便的安装所需要的软件包和开发库,而不需要自己去找源码编译.
        支持多种编译环境,可以很方便的整合 mingw 和 clang,自身也是基于cygwin的一个简单开发环境,可以通过 pacman 包管理器很方便的安装对应编译环境的开发库。msys2的安装目录结构如下:


    我们可以看到上面的图片中,自带 clang32,clang64,mingw32和mingw64 这四个文件夹,默认这四个文件夹是空的,我们可以根据需要自行的下载对应的编译套件放入。比如我们放入了mingw编译套件,就可以使用mingw32.exe和mingw64.exe来方便的运行对应的编译环境。这个编译环境是继承了 msys2 自身环境的,而不是独立的。

    这里使用Cmder来演示msys2功能,如果不知道Cmder是什么,请看上一篇文章.

    小贴士

        建议搭配Cmder进行使用,这样会很爽.
        设置msys2代理,有时候国内的网络环境可能访问很慢,
        打开 /etc/profile 文件,然后写入:

        # proxy settings
        export HTTP_PROXY="127.0.0.1:1080"
        export HTTPS_PROXY=$HTTP_PROXY
        export http_proxy=$HTTP_PROXY
        export https_proxy=$HTTP_PROXY

        这样下载软件包就舒服多了.
        需要注意msys2和ming32是两套环境,上面的演示gif也说明了这个问题,所以一定要注意按需下载,类似gcc,g++这种都是两套的,但是configure程序只有msys2自带的那个,它自己会根据你打开的命令行环境来生成对应编译环境的Makefile,调用对应的gcc等程序.
        如果出现奇怪的编译错误,那么可以检查一下是不是现有的编译环境某些程序和msys2自身环境有冲突,因为其他编译环境一定程度上继承了msys2自身的环境。
        如果编译的时候需要一些老的开发库,那么可以访问msys2的官方仓库网址,一般可以在这里找到老的开发库安装包,然后我们下载下来使用pacman本地安装即可.

    官网:

    https://www.msys2.org/

    https://www.msys2.org/#installation

    https://www.msys2.org/docs/environments/


    下载地址:
    https://github.com/msys2/msys2-installer/releases/download/2024-05-07/msys2-x86_64-20240507.exe

    (https://github.com/Zeranoe/mingw-w64-build)

    ------------------------------

    搭建windows平台上的GTK+-3.0开发环境

    前言

    最近在了解GTK+-3.0界面开发相关,由于自身用的系统环境是windows,开个linux虚拟机来开发的话总归是麻烦了点,于是开始寻找 windows上快捷搭建 GTK+-3.0 编译环境的方法,在经过尝试后,大概有三种办法,下面会对这些方法进行详细介绍。

    msys2

    第一种方法便是是使用 msys2 跨平台编译环境,安装 mingw32 直接在控制台中使用命令对 GTK+-3.0 工程进行编译,基于 msys2 的 mingw32 编译环境的具体搭建方法可以参考上面的文章:msys2环境的搭建。

    当我们搭建完环境后,打开 mingw32 环境,安装 GTK+-3.0 开发库,如下

    Administrator@MRROBOT-PC MINGW32 ~
    # pacman -Ss gtk3     //查询安装包
    mingw32/mingw-w64-i686-gtk3 3.24.23-1 [已安装]
    ...

    Administrator@MRROBOT-PC MINGW32 ~
    # pacman -S mingw-w64-i686-gtk3

    Administrator@MRROBOT-PC MINGW32 ~
    # pacman -S mingw-w64-i686-pkg-config

    接着我们新建一个 GTK+-3.0 源码文件 main.c

    #include <stdio.h>
    #include <gtk.h>

    int main()
    {
        gtk_init(NULL);
        ......
        gtk_main();
    }

    然后使用下面的命令进行编译

    gcc main.c `pkg-config --cflags --libs glib-2.0 gtk+-3.0` -o helloword

    这种方法就是比较原始的方法了,但是我们后续的方法都是基于这个 msys2的mingw32 环境来展开的。

    第2种方法

    msys2 + codeblocks (推荐)

    下载地址:http://www.codeblocks.org/downloads/binaries
    这个方法是我推荐的方法,超级简单,首先我们配置一下编译器
    Settings --- compiler

    然后需要做的就是自定义一个 gtk+-3.0 的工程向导模板,因为自带的只有 gtk+-2.0 的。

    如图,这个 GTK+-3.0 project 是我自定义的工程模板,新建完后工程如下:

    这个默认的 main.c 也是我自定义的模板,大家可以自行修改,模板文件如下:
    链接: https://pan.baidu.com/s/1WljtnhG1ocnqW25pv8OWAA
    提取码: cycy

    然后解压后放到 codeblock 的 wizard 目录,我的是
    C:\Program Files\CodeBlocks\share\CodeBlocks\templates\wizard
    然后修改该目录下的 config.script 文件,注册我们的工程模板

    RegisterWizard(wizProject,     _T("gtk3"),         _T("GTK+-3.0 project"),      _T("GUI"));

    然后启动 codeblocks 新建工程就可以看到我们的工程模板了,在这个界面是可以右键对模板进行修改的,修改后后续可以随时右键恢复。如果没有出现模板,那么请在这个新建界面右键编辑全局文件,IDE会打开 config.script 文件让我们修改,修改完后重启 codeblocks 即可
    这种方式感觉是最好的方法,linux上也可以使用它进行gtk+-3.0开发。

    No comments:

    Post a Comment