我正在尝试编写一个小插件来删除当前文件并关闭活动视图。由于某种原因 self.view.file_name() 总是返回 None。
我是 Python 新手,我不知道为什么它不能这样工作。根据API 参考file_name() 返回当前视图的文件名。
import sublime, sublime_plugin, send2trash
class DeleteCurrentFileCommand(sublime_plugin.TextCommand):
def run(self, edit):
f = self.view.file_name()
if (f is None):
return
send2trash.send2trash(f)
self.view.window().run_command('close')
dir(self.view)的输出:
[' class ',' delattr ',' dict ',' doc ',' format ',' getattribute ',' hash ',' init ',' len ',' module ',' new ',' reduce ',' reduce_ex ',' repr ',' setattr ',' sizeof ',' str ',' subclasshook ',' weakref','add_regions','begin_edit','buffer_id','classify','command_history','em_width','encoding','end_edit','erase','erase_regions','erase_status','extract_completions', 'extract_scope'、'file_name'、'find'、'find_all'、'find_all_results'、'find_by_selector'、'fold'、'folded_regions'、'full_line'、'get_regions'、'get_status'、'get_symbols'、'has_non_empty_selection_region ','id','indentation_level','indented_region','insert','is_dirty','is_folded','is_loading','is_read_only','is_scratch','layout_extent','layout_to_text','line', 'line_endings','line_height','lines','match_selector','meta_info','name','replace','retarget','rowcol','run_command','scope_name','score_selector','sel' ,'set_encoding','set_line_endings','set_name','set_read_only','set_scratch','set_status','set_syntax_file','set_viewport_position','settings','show','show_at_center','size',' split_by_newlines','substr','syntax_name','text_point','text_to_layout','unfold','viewport_extent','viewport_position','visible_region','window','word']match_selector','meta_info','name','replace','retarget','rowcol','run_command','scope_name','score_selector','sel','set_encoding','set_line_endings','set_name' 、'set_read_only'、'set_scratch'、'set_status'、'set_syntax_file'、'set_viewport_position'、'settings'、'show'、'show_at_center'、'size'、'split_by_newlines'、'substr'、'syntax_name'、' text_point','text_to_layout','展开','viewport_extent','viewport_position','visible_region','window','word']match_selector','meta_info','name','replace','retarget','rowcol','run_command','scope_name','score_selector','sel','set_encoding','set_line_endings','set_name' 、'set_read_only'、'set_scratch'、'set_status'、'set_syntax_file'、'set_viewport_position'、'settings'、'show'、'show_at_center'、'size'、'split_by_newlines'、'substr'、'syntax_name'、' text_point','text_to_layout','展开','viewport_extent','viewport_position','visible_region','window','word']run_command'、'scope_name'、'score_selector'、'sel'、'set_encoding'、'set_line_endings'、'set_name'、'set_read_only'、'set_scratch'、'set_status'、'set_syntax_file'、'set_viewport_position'、'settings' , 'show', 'show_at_center', 'size', 'split_by_newlines', 'substr', 'syntax_name', 'text_point', 'text_to_layout', '展开', 'viewport_extent', 'viewport_position', 'visible_region', '窗口','单词']run_command'、'scope_name'、'score_selector'、'sel'、'set_encoding'、'set_line_endings'、'set_name'、'set_read_only'、'set_scratch'、'set_status'、'set_syntax_file'、'set_viewport_position'、'settings' , 'show', 'show_at_center', 'size', 'split_by_newlines', 'substr', 'syntax_name', 'text_point', 'text_to_layout', '展开', 'viewport_extent', 'viewport_position', 'visible_region', '窗口','单词']set_viewport_position'、'settings'、'show'、'show_at_center'、'size'、'split_by_newlines'、'substr'、'syntax_name'、'text_point'、'text_to_layout'、'unfold'、'viewport_extent'、'viewport_position' , 'visible_region', 'window', 'word']set_viewport_position'、'settings'、'show'、'show_at_center'、'size'、'split_by_newlines'、'substr'、'syntax_name'、'text_point'、'text_to_layout'、'unfold'、'viewport_extent'、'viewport_position' , 'visible_region', 'window', 'word']