Index: src/wp-admin/css/common.css
===================================================================
--- src/wp-admin/css/common.css	(revision 42461)
+++ src/wp-admin/css/common.css	(working copy)
@@ -3053,6 +3053,11 @@
 	box-sizing: border-box;
 }
 
+#plugin-files-search,
+#theme-files-search {
+	width: 100%;
+}
+
 #templateside > h2 {
 	padding-top: 6px;
 	padding-bottom: 7px;
Index: src/wp-admin/js/theme-plugin-editor.js
===================================================================
--- src/wp-admin/js/theme-plugin-editor.js	(revision 42461)
+++ src/wp-admin/js/theme-plugin-editor.js	(working copy)
@@ -73,9 +73,56 @@
 			}
 			return undefined;
 		} );
+
+		/*
+		 * Use feature detection to determine whether inputs should use
+		 * the `keyup` or `input` event. Input is preferred but lacks support
+		 * in legacy browsers. See changeset 34078, see also ticket #26600#comment:59
+		 */
+
+		var inputEvent;
+		if ( 'oninput' in document.createElement( 'input' ) ) {
+			inputEvent = 'input';
+		} else {
+			inputEvent = 'keyup';
+		}
+
+		$( document ).on( inputEvent, '#plugin-files-search, #theme-files-search', component._searchFile );
 	};
 
 	/**
+	 * Search file.
+	 *
+	 * @since 4.9.2
+	 * @returns {void}
+	 */
+	component._searchFile = function() {
+		var parent      	= $( '#templateside' ),
+			directories     = parent.find( 'ul ul li' ),
+			files           = parent.find( 'ul ul li a' ),
+			search_term     = $( this ).val();
+
+		if( search_term.length ) {
+
+			// Expand all directories for search file.
+			// Hide Directories. Because, Below we show those directories
+			// which have search term in the file name.
+			directories.attr( 'aria-expanded', true ).hide();
+
+			// Search file and ONLY show these directories which "contain" the file name.
+			var rex = new RegExp( search_term, 'i' );
+	    files.filter( function() {
+				var file_name = $.trim( $( this ).text() ) || '';
+	      return rex.test( file_name );
+	     } ).parents( 'li' ).show();
+
+		} else {
+			// Collapse & show all directories.
+			directories.attr( 'aria-expanded', false ).show();
+		}
+	};
+
+	/**
 	 * Set up and display the warning modal.
 	 *
 	 * @since 4.9.0
Index: src/wp-admin/plugin-editor.php
===================================================================
--- src/wp-admin/plugin-editor.php	(revision 42461)
+++ src/wp-admin/plugin-editor.php	(working copy)
@@ -239,6 +239,8 @@
 
 <div id="templateside">
 	<h2 id="plugin-files-label"><?php _e( 'Plugin Files' ); ?></h2>
+	<label for="plugin-files-search" class="screen-reader-text"><?php esc_html_e( 'Search file..' ); ?></label>
+	<input id="plugin-files-search" name="plugin-files-search" type="search" placeholder="<?php esc_html_e( 'Search file..' ); ?>">
 
 	<?php
 	$plugin_editable_files = array();
Index: src/wp-admin/theme-editor.php
===================================================================
--- src/wp-admin/theme-editor.php	(revision 42461)
+++ src/wp-admin/theme-editor.php	(working copy)
@@ -243,6 +243,9 @@
 ?>
 <div id="templateside">
 	<h2 id="theme-files-label"><?php _e( 'Theme Files' ); ?></h2>
+	<label for="theme-files-search" class="screen-reader-text"><?php esc_html_e( 'Search file..' ); ?></label>
+	<input id="theme-files-search" name="theme-files-search" type="search" placeholder="<?php esc_html_e( 'Search file..' ); ?>">
+
 	<ul role="tree" aria-labelledby="theme-files-label">
 		<?php if ( ( $has_templates || $theme->parent() ) && $theme->parent() ) : ?>
 			<li class="howto">
