Skip to content

Instantly share code, notes, and snippets.

@ssfang
Last active April 24, 2016 06:47
Show Gist options
  • Select an option

  • Save ssfang/d239874ded8a6e30869addf0d19bc39d to your computer and use it in GitHub Desktop.

Select an option

Save ssfang/d239874ded8a6e30869addf0d19bc39d to your computer and use it in GitHub Desktop.
Notepad++ NppExec Example
{
//http://docs.sublimetext.info/en/latest/reference/build_systems.html
//"name": "Complie",
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"cmd": "C:\\Cygwin\\bin\\g++.exe ${file} -o $file_path\\\\$file_base_name.exe",
"working_dir": "${file_path}",
"selector": "source.c, source.c++, source.cpp",
"encoding": "UTF-8",
"variants": [
{
"name": "RunIt",
"cmd": ["$file_path\\\\$file_base_name.exe"],
"encoding": "UTF-8",
},
{
"name": "Run",
"cmd": ["${file_path}/${file_base_name}"],
},
{
"name": "ComlieAndRun",
"cmd": ["cmd", "/c", "g++", "${file}", "-o", "${file_path}/${file_base_name}", "&&", "cmd", "/c", "${file_path}/${file_base_name}"]
},
{
"name": "RunInCommand",
"cmd": ["cmd", "/c", "g++", "${file}", "-o", "${file_path}/${file_base_name}", "&&", "start", "cmd", "/c", "${file_path}/${file_base_name} & pause"]
}
]
}

保存,编译成功跳转到执行ExecuteCompiledFile_0,记命令名为C/C++CompileAndExecute

// 
NPP_SAVE
C:\Cygwin\bin\g++.exe -o "$(CURRENT_DIRECTORY)\$(NAME_PART)" "$(FULL_CURRENT_PATH)" -static -std=c++14 
set N ~ $(EXITCODE)  != 0
NPP_EXEC ExecuteCompiledFile_$(N)

命令名ExecuteCompiledFile_0内容

"$(CURRENT_DIRECTORY)\$(NAME_PART)"

命令名ExecuteCompiledFile_1内容

echo Failed to complie!

调用外部命令得到结果,如获取当前文件的修改时间,$(CURRENT_DIRECTORY)\$(FILE_NAME)$(FULL_CURRENT_PATH)等价。

//开启输出抓捕 NPE_CONSOLE: v+
================ READY ================
NPE_CONSOLE v+
NPE_CONSOLE: v+
Console mode: a- d- h+ m+ q+ v+ f+ r- k3 o1 i1
; append: off, cd_curdir: off, cmd_history: on
; int_msgs: on, cmd_aliases: on, output_var: on
; filter: on, replace_filter: off
; shortcut_keys: std+usr
; out_enc: OEM, in_enc: OEM
================ READY ================

//执行命令
================ READY ================
cmd /c for %f in ("$(CURRENT_DIRECTORY)\$(FILE_NAME)") do echo %~tf
cmd /c for %f in ("C:\Users\fang\Desktop\ftw.cpp") do echo %~tf
Process started >>>

D:\ProgramFiles\NotePad\Notepad++>echo 2012/02/22 02:22 
2012/02/22 02:22
<<< Process finished. (Exit code 0)


// OUTPUTL命令的直接输出,OUTPUT冗余的输出
================ READY ================
set MTIME = $(OUTPUTL)
SET: MTIME = 2012/02/22 02:22
$(MTIME) = 2012/02/22 02:22
================ READY ================
set ALL_OUTPUT = $(OUTPUT)
SET: ALL_OUTPUT = D:\ProgramFiles\NotePad\Notepad++>echo 2012/02/22 02:22
2012/02/22 02:22
$(ALL_OUTPUT) = D:\ProgramFiles\NotePad\Notepad++>echo 2012/02/22 02:22
2012/02/22 02:22
================ READY ================
echo $(MTIME)
2012/02/22 02:22
================ READY ================
echo $(ALL_OUTPUT)
D:\ProgramFiles\NotePad\Notepad++>echo 2012/02/22 02:22
2012/02/22 02:22
================ READY ================


# 关闭捕获
================ READY ================
NPE_CONSOLE v-
NPE_CONSOLE: v-
Console mode: a- d- h+ m+ q+ v- f+ r- k3 o1 i1
; append: off, cd_curdir: off, cmd_history: on
; int_msgs: on, cmd_aliases: on, output_var: off
; filter: on, replace_filter: off
; shortcut_keys: std+usr
; out_enc: OEM, in_enc: OEM
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment