Cmder:从此告别记事本记命令的日子

这篇具有很好参考价值的文章主要介绍了Cmder:从此告别记事本记命令的日子。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

平时开发中遇到这样那样的命令需要记下来,一般做法是这样。

  1. 新建记事本
  2. 将需要记下的关键命令保存。
  3. 每次需要使用时,粘贴复制即可。

好像没什么毛病!直到遇到了 Cmder。。。

当看到同事分析问题时在 Cmder 里命令快捷键刷刷一顿操作,觉得挺厉害滴。感觉这同事技术好牛,快捷键用这么好。后来才知道是 Cmder 用的溜,给人感觉很厉害。从某种意义上说,Cmder 简直是技术人装逼必备神器。

本文不打算讲解 Cmder 的安装和配置过程。可自行查阅,不清楚也可留言。这里重点说说 Cmder 最吸引功能: 自定义命令别名

讲解自定义命令别名之前,先简单介绍下 Cmder。

什么是 Cmder

一句话概括:作者出于 windows 上好的命令行终端太少而创建的 Cmder。

Cmder 是 windows 上一款命令行终端工具。

Cmder:从此告别记事本记命令的日子,javascript,前端,开发语言

Cmder 特色:

  • 可设置命令别名
  • 丰富的颜色主题(Solarized、Twilight、Ubuntu、xterm、Monokai,甚至接受自定)、可定制字体
  • 支持 tab 分页、同屏多端口(支持水平分割、垂直分割)
  • 支持自定 terminal,无论是 CMD、PowerShell、bash 都可以,还可以注入环境变量
  • 集成了 git
  • 完全便携可通过 U 盘或者云端携带。保持你的设置别名和历史记录,再也不会看丑陋的 windows 提示符了。

Cmder 特色总结:设置命令别名,配置好看主题,支持多开,自定义终端环境,集成 git 和方便携带。

自定义命令别名

别名定义

很长的命令可以用很简单几个字母表示。如下,只要在 Cmder 中敲 gl 就可代替后面一连串命令。

gl=git log --oneline --all --graph --decorate  $*

命令范围

也许大多数人概念中,既然 Cmder 是 windows 平台工具,那么支持命令当然是 windows 平台相关命令。

其实 Cmder 可表示命令范围很广,任何添加到系统环境变量中的工具,其相关命令都可执行

如下图中,windows 系统环境变量中配置了 svn 和 jdk 。则 java 和 svn 相关命令默认都可以在 Cmder 命令行中可执行。

若目标工具未配置在系统环境变量中则不能直接在 Cmder 中默认使用,需在 Cmder 中手动转到相关目录下执行。

Cmder:从此告别记事本记命令的日子,javascript,前端,开发语言

一般开发类软件比如 python、java、git 环境配置时都需要添加到系统环境变量中。

如何添加别名

步骤一: Cmder 安装目录下打开此文件

Cmder:从此告别记事本记命令的日子,javascript,前端,开发语言

步骤二:按如下格式添加 ① 表示自定义别名 ② 表示需配置的原始命令。

Cmder:从此告别记事本记命令的日子,javascript,前端,开发语言

步骤三:保存修改,关闭 Cmder 客户端后再打开即可生效自定义别名命令。

效果展示

Git 场景

列举两个相关场景

一次性提交给多人评审代码

gpushr = git push origin HEAD:refs/for/master%r=alice@example.com,r=bob@example.com

这样在 Cmder 中直接敲 gpushr 就行了,当然这个 gpushr 是我自己取的,您可以选择自己的别名,一个字母都行。

常规命令快捷键

gl=git log --oneline --all --graph --decorate  $*
gp=git pull
gs=git status
gdb=git branch -D $*

效果如下:

Cmder:从此告别记事本记命令的日子,javascript,前端,开发语言

Cmder:从此告别记事本记命令的日子,javascript,前端,开发语言

关于命令行中的 $*

表示当前位置是一个变量,由外部传入。

如下操作含义:

  1. 查看当前目录下分支
  2. 创建 test 分支(当然此操作也可以别名控制)
  3. 列出所有分支名称
  4. 上次指定分支 test

这里 gdb=git branch -D $* 而test 通过 $*传入命令中 最终 gdb test = git branch -D test。

Cmder:从此告别记事本记命令的日子,javascript,前端,开发语言

就问你 6 不 6。

这些自定义命令只有你自己知道,别人看不懂,学会之后人家眼里尽是你的牛逼。

如何运行脚本

有人说我得了懒癌。每次切换到 python 脚本目录再运行很麻烦。想在 Cmder 中用别名运行一个 python 脚本,

可以的,你想得到,Cmder 就可以帮你做到。

举个例子:

熟悉安卓开发同学都知道,每次 logcat 打印进程信息,其他进程日志会扰乱当前调试进程,只想看到当前进程日志,怎么办呢?可以如下操作:

步骤一:可在 Cmder 安装目录下新建 script 文件夹放入目标 python 脚本

其中 logcatPkg_27.py 可以帮你过滤其他进程日志,只聚焦当前进程日志。

Cmder:从此告别记事本记命令的日子,javascript,前端,开发语言

步骤二: 命令中通过%CMDER_ROOT%\script 指定到目标脚本。

如:执行 logcatPkg_27.py 脚本并在$* 处传入关注进程包名即可。

logcatp=python "%CMDER_ROOT%\script\logcatPkg_27.py" $*

logcatPkg_27.py 代码如下:

#!/usr/bin/env python
#coding:utf-8
#This script is aimed to grep logs by application(User should input a packageName and then we look up for the process ids then separate logs by process ids).

import os
import sys

packageName=str(sys.argv[1])

def getDeviceId():
    devices = []
    command = "adb devices -l | sed '1d'| awk '{print $1}'"
    result = os.popen(command)
    deviceId = result.readline().strip()
    if deviceId != "":
        devices.append(deviceId)

    while (deviceId != ""):
        deviceId = result.readline().strip()
        if deviceId != "":
            devices.append(deviceId)
    return devices;

def printPakcageLog(device, packageName):
    # print device, packageName
    print("Got device: "+device)
    command = "adb -s %s shell ps | grep %s | awk '{print $2}'"%(device, packageName)
    # print command
    p = os.popen(command)
    ##for some applications,there are multiple processes,so we should get all the process id
    pid = p.readline().strip()
    filters = pid
    while(pid != ""):
        pid = p.readline().strip()
        if (pid != ''):
            filters = filters +  "|" + pid
            #print 'command = %s;filters=%s'%(command, filters)
    if (filters != '') :
        cmd = 'adb -s %s logcat -v time | grep --color=always -E "%s" '%(device, filters)
        os.system(cmd)

devices = getDeviceId();
devicesNum = len(devices);

if devicesNum < 1:
    print("Device not found.")
elif devicesNum == 1:
    device = devices[0]
    printPakcageLog(device, packageName)
else:
    print("Please chose a dvice, input the index of the device:")
    for i in xrange(0, devicesNum):
        print(str(i) + "\t" + devices[i])
    index = raw_input("")
    printPakcageLog(devices[int(index)], packageName)

步骤三:执行自定义 python 命令即可

如图中,指定一个包名参数,python 脚本就会找到对应包名的 uid ,然后打印所有相关进程信息。

Cmder:从此告别记事本记命令的日子,javascript,前端,开发语言

Cmder 别名优势

有杠精会说,git 支持别名啊,Cmder别名多此一举了,本身.gitconfig 里就支持别名操作,难道不知道?如下

$ cat .gitconfig
[alias]
    co = checkout
    ci = commit
    br = branch
    st = status
[user]
    name = Your Name
    email = your@email.com

需要说明的是,这种别名每次使用时都需要带上 git,才能真正执行,比如上述中执行 co 需要写成 git co 才可执行。

与 Cmder 对比很容易看成 Cmder 别名优势:

  1. 让别名更简洁,
  2. 支持通过$*传入自定义变量更加灵活,
  3. 支持其他工具的自定义命令。

总结

本文介绍了 Cmder 命令行终端工具的特点和使用方法,重点讲解了如何自定义命令别名。通过 Git 别名配置和脚本别名配置,展示了 Cmder 别名的强大之处。最后,通过与 Git 别名对比,进一步展示了 Cmder 的优势。Cmder 自定义别名可以让命令更简洁、更灵活,提高开发效率。 文章来源地址https://www.toymoban.com/news/detail-642514.html

到了这里,关于Cmder:从此告别记事本记命令的日子的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue设计记事本

    项目描述 项目实现功能有:记录今天要完成的任务,勾选已经完成的任务,删除已经完成的全部任务。 界面展示: 代码展示 创建一个Myitem.vue文件夹 2.在components文件夹下创建 Myheader文件夹 3.在同一个文件夹下创建MyFooter.vue文件夹 4.在同个文件夹下创建MyList.vue文件 5.再创建

    2024年02月08日
    浏览(47)
  • Java小程序-记事本

    摘 要 为了使自己熟悉Java编译,了解更多的面向对象语言的编程策略。进而,深入了解Java语言的操作、及原理等。因此我开发了一个记事本,使自己可以巩固知识,加深记忆。设计一个简易记事本,能够记录使用者输入的信息,同时可以实现保存输入的信息,以方便后期查看

    2024年02月04日
    浏览(46)
  • 11 MFC 制作记事本

    选择Menu 点击新建 将内容写入\\\"_\\\"的用 符号 将菜单加入到窗口中 右键选择添加事件处理程序 点击确定 Edit设置多行显示 Edit设置按回车能够换行 Edit设置竖直方向滚动 打开文件代码 查找与替换对话框显示(非模态对话框) 对话框消息与对话框处理函数 对话框处理函数 //note

    2024年02月11日
    浏览(30)
  • java记事本源代码

    本文仿电脑自带记事本,实现的功能有新建、新窗口、打开、保存、另存为、退出、撤销、剪切、复制、粘贴、删除、查找、查找下一个、查找上一个、替换、转到、全选、时间/日期、自动换行、缩放(放大、缩小、恢复默认大小),未实现功能有页面设置、打印、字体、状

    2024年02月10日
    浏览(29)
  • vue记事本渲染以及交互

    2024年04月10日
    浏览(33)
  • Android开发_记事本(1)

    TextView中有下述几个属性: id: 为TextView设置一个组件id,根据id,我们可以在Java代码中通过findViewById()的方法获取到该对象,然后进行相关属性的设置,又或者使用RelativeLayout时,参考组件用的也是id! layout_width: 组件的宽度,一般写: wrap_content 或者 match_parent(fill_parent) ,前

    2023年04月10日
    浏览(53)
  • 【Java】实现记事本(完整版)

    💕💕💕大家好,这是作业侠系列之Java实现记事本,还是那句话,我的粉丝们需要源码直接qq邮箱+你需要的源码私发我即可哦,大家觉得还行的话,期待你们的三连,这也是我创作的最大动力💕💕💕 往期源码回顾: 【Java】实现绘图板(完整版) 【C++】图书管理系统(完整板

    2024年02月08日
    浏览(42)
  • C# 记事本应用程序

    2024年02月10日
    浏览(35)
  • Android Studio——记事本案例

    一、布局界面         1、记事本界面布局 main_notepad.xml         2、记事本Item布局界面 activity_item.xml         3、添加、修改界面布局 activity_record.xml 二、封装记录信息实体类         记事本的每个记录都会有记录内容和记录时间这两个属性,因此需要建立一个实体类用于存

    2024年02月05日
    浏览(34)
  • Windows应用程序——记事本

    本博客介绍如何使用Visual Studio 2019设计一个Windows应用程序——记事本,通过学习,可以进一步掌握MenuStrip(菜单)、ToolStrip(工具栏)、RichTextBox(高级文本框)和StatusStrip(状态栏控件)等控件的使用,以及如何使用CommonDialog(公共对话框)实现对文本的存取、格式设置等

    2024年02月03日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包