A: 将Notepad++改造成自己喜欢的C/C++编译器。
并且提供一些实用的方法让你的IDE更加好用,更加实用。此外还提出在使用过程中容易犯的问题以及相应的解决办法。
在此说明,本文学习参考了博客:http://aofengblog.blog.163.com/blog/static/63170212010111164752194/。感谢该作者的分享。
一、安装MinGW编译器
如果您已经安装过CodeBlocks,就不需要安装了,只需要将绝对路径MinGW\bin添加到您的环境变量path中。
如果您还没有安装任何的MinGW编译器,请先安装,并将bin文件的绝对路径添加到您的环境变量path中。
二、调用cmd形式
在Notepad++中,可以直接打开cmd,并且cmd已经将工作路径更换到当前文件中了
在:菜单运行\Open current dir cmd,会弹出cmd命令行,并且工作路径已经更换到当前文件的路径中
测试如下:新建一个main.cpp文件,输入如下,打开菜单运行\Open current dir cmd,输入g++ -o main.exe main.cpp并回车,这样就生成了与main.cpp同路径的main.exe文件,下一步执行main.exe,就能在cmd窗口中输出Hello world。
以上只是取巧的办法,方便一次两次的运行,这里写出来只是为了让看客们知道这种另类的方法。如果您希望将NotePad++改成一个真正可执行的IDE,就请继续下面的学习之旅。
三、安装NppExec插件
1、NppExec安装
以上博主提供了NppExec_041_dll_Unicode.zip的连接,请先行下载。
下载并解压NppExec_041_dll_Unicode.zip,将 NppExec.dll 和目录NppExec 复制到Notepad++ 的 plugins 目录下
将doc目录下的fparser.html、NppExec.txt、NppExec_Manual.chm、NppExec_Manual.knt、NppExec_TechInfo.txt 复制到 plugins\doc\NppExec 目录下。NppExec文件如果没有就自己新建一个
重新启动Notepad++
2、NppExec配置
a. 打开:菜单Plugins\NppExec\Execute。对于中文的Notepad++为:插件\NppExec\Execute
b. C语言编译器配置:在Execute中输入cmd /c "gcc -o $(CURRENT_DIRECTORY)\$(NAME_PART) $(FULL_CURRENT_PATH) && CLS && pushd $(CURRENT_DIRECTORY) && $(NAME_PART).exe",点击“Save...”按钮保存,命名为“CompilerC”。
c. C++编译器配置:在Execute中输入cmd /c "g++ -o $(CURRENT_DIRECTORY)\$(NAME_PART) $(FULL_CURRENT_PATH) && CLS && pushd $(CURRENT_DIRECTORY) && $(NAME_PART).exe",点击“Save...”按钮保存,命名为“CompilerC++”。
d. 将CompilerC和CompilerC++添加到Macros菜单中
打开Pluguns\NppExec\Advanved Options,对于中文的Notepad++为:插件\NppExec\Advanved Options
在Associated script中分别选择CompilerC和CompilerC++,点击Add/Modify依次添加到Menu items中,期间注意修改Item name。在Menu items中勾选Place to the Macros submenu。
e. 加上快捷键
打开:宏\管理快捷键...。可以看到,已经有了CompilerC和CompilerC++两栏。下一步我们分别为他们设置快捷键F9和F10。
选择Plugin commands,找到我们需要的CompilerC和CompilerC++,Notepad++将大部分快捷键都占用了,但是F9和F10都没有用,这里可以将这两个键用上。
四、使用分析
1. 回到输入cmd /c "gcc -o $(CURRENT_DIRECTORY)\$(NAME_PART) $(FULL_CURRENT_PATH) && CLS && pushd $(CURRENT_DIRECTORY) && $(NAME_PART).exe"这句话(以CompilerC为例,CompilerC++类似)
这里解释下这句话:用/c的方式打开cmd,调用gcc.exe,输出文件为本文件所在路径下与本文件名同名的exe,输入文件为本文件绝对路径,之后执行CLS命令,之后将工作路径更换到当前路径下,调用与本文件同名的exe文件执行。网上很多有关Notepad++安装配置C/C++编译器的博客都是抄自于一同个人,所以大多都一样,而且不使用。在小布博客中,采用了不一样的命令,带给您不尽的便利。主要修改在于1:$(CURRENT_DIRECTORY)\$(NAME_PART) 将最终生成的可执行文件放在了与main源程序相同的路径下,网上别的方法会将exe生成在Notepad++的安装路径下,这是用户不愿看到的;2:pushd $(CURRENT_DIRECTORY) && $(NAME_PART).exe。将cmd的工作路径更换到当前路径下,并调用生成的可执行文件,如果不更换路径,就会发生在cmd默认路径下远程调用生成的exe,如果程序中需要打开文件、生成文件,路径都需要改为相对于cmd默认路径来,只有将当前cmd路径换到exe本身的路径下,才能更方便的使用。题外话,大家可以尝试用/k的方式打开cmd。
C/C++中有时需要带参数的main。(void main(int args, char *argv[]))。这个参数通过Notepad++怎么传递呢?在我们以上输入中,最后一句话为$(NAME_PART).exe,代表在cmd中调用了一个可执行文件exe,但是没有给参数,如果我们需要传递参数,就需要给在:菜单Plugins\NppExec\Execute中进行设置,将需要的参数添加在$(NAME_PART).exe后面,例如想要使用CompilerC++并添加两个参数,分别是100和1000,只需要在菜单Plugins\NppExec\Execute中选中CompilerC++,并输入cmd /c "g++ -o $(CURRENT_DIRECTORY)\$(NAME_PART) $(FULL_CURRENT_PATH) && CLS && pushd $(CURRENT_DIRECTORY) && $(NAME_PART).exe 100 1000"。即添加了参数在末尾,以空格隔开。
2. 考虑到源文件中基本上会包含(#include)很多自己写的文件,部分编译器会自动在源文件所在目录下搜索包含的文件,如果您的编译器不会这样做,源文件中包含的自己写的头文件就不能正确的被找到,因为当前工作路径在cmd的默认路径下。为解决这个问题,就需要将pushd动作提前,改为这句话:cmd /c "pushd $(CURRENT_DIRECTORY) && gcc -o $(NAME_PART) $(FULL_CURRENT_PATH) && $(NAME_PART).exe"。这句话先将工作路径更换到源文件所在的路径,再调用gcc.exe编译源文件,这样工作路径更改了,头文件只要相对于源文件给出相对包含路径就能正确找到了。还是那句话,由于大部分编译器会自动在源文件所在目录下搜索包含的文件,所以这点修改是不必要的,只是针对于比较old的编译器可能会出现这样的问题。
3. 代码都对了,可是编译的时候还是出现问题
由于Notepad++在新建文件的时候默认是采用UTF-8无BOM编码格式,编码这一块小布还是很熟悉的,欢迎讨论,有关编码问题这篇文章写得不错http://www.cnblogs.com/chenwenbiao/archive/2011/08/11/2134503.html。而大部分C/C++编译器需要ANSI编码,所以需要将源文件都转换成ANSI编码。如果您的源文件中出现汉字,就需要进行UTF-8无BOM编码到ANSI编码的转换操作,如果源文件不包含任何汉字,不用转换也可以,因为UTF-8无BOM编码兼容ANSI编码,就是说,纯英文符号的文件,两种编码编出的码是一样的,所以有些人会疑惑,为什么添加了汉字在文件中就不能正确的运行了。因为编码出错了。
可以修改Notepad++创建文本是默认的编码,打开:菜单设置\首选项。在新建中将编码栏选中ANSI就好了。
B: 将Notepad++改造成自己喜欢的Java编译器。
写java代码的时候,电脑配置不高,用eclipse启动太慢,各种卡顿?用记事本又太平凡?还得用命令行编译运行太麻烦?那就用notepad++吧,启动快,也可以直接编译,下载安装我就不介绍了,主要介绍一下如何用notepad++运行java程序
前提是已经配置好了java环境,这个自己去百度
用notepad++打开随便一个文件,写好java代码,在Notepad++上面的选项栏中找到 插件—>Plugin Manager—>show Plugin Manager,提示,之后会加载一段时间,不要着急,加载完之后,在弹出的显示插件的窗口中勾上NppExec这个插件,再点install,安装完后会提示重启notepad++,点是就好,然后,如果你安装成功了,按F6,就会出来一个提示框,在里面敲入以下代码
NPP_SAVE
cd "$(CURRENT_DIRECTORY)"
javac.exe "$(FILE_NAME)"
java.exe "$(NAME_PART)"
C: Notepad++ compiler python。
- 我们需要先安装Python,例如我的python.exe的路径是
E:\PyCharm\Python34\python.exe - 在Notepad++中打开/写好代码,按下F5或运行->运行,输入命令
cmd /k E:\PyCharm\Python34\python.exe "$(FULL_CURRENT_PATH)" & PAUSE & EXIT
- 1
- 保存,设置快捷键。
- 之后每一次需要运行python脚本的时候,只需要按下所设置的快捷键即可。
原理:
- cmd :打开命令提示符程序
- /k :执行后面的命令,相当于把后面的内容复制到命令提示符里执行
- ..\python.exe :python.exe的路径
- $(FULL_CURRENT_PATH) :Notepad++的宏定义,获取当前文件路径,在cmd里需要用双引号将路径括起来。
- & :连接多条命令,x & y & z 意味着先执行x,然后执行y,然后执行z
- pause、exit :cmd的指令,暂停、退出
所以整条命令的意思就是,打开cmd,执行python.exe,运行当前文件,运行结束暂停,按任意键退出cmd